可选参数没有?标识符
Optional arguments without ? identifier
在 http://haxe.org/manual/types-function-default-values.html 的 Haxe 3 手册中,我们有 static function test(?i = 12, s = "bar")
。
为什么不是 static function test(?i = 12, ?s = "bar")
或 static function test(i = 12, s = "bar")
?
实际上,?i=1
和 i=1
之间存在细微差别:
function test(?i=1):String
的类型是 Null<Int> -> String
function test(i=1):String
的类型是 Int -> String
虽然 ?i
表示一个可选参数 – 并且总是暗示可空性 – i=1
表示一个默认值并且应该消除对 Null<T>
框的需要。
参见 Optional Arguments and Nullability and an example。
在 http://haxe.org/manual/types-function-default-values.html 的 Haxe 3 手册中,我们有 static function test(?i = 12, s = "bar")
。
为什么不是 static function test(?i = 12, ?s = "bar")
或 static function test(i = 12, s = "bar")
?
实际上,?i=1
和 i=1
之间存在细微差别:
function test(?i=1):String
的类型是Null<Int> -> String
function test(i=1):String
的类型是Int -> String
虽然 ?i
表示一个可选参数 – 并且总是暗示可空性 – i=1
表示一个默认值并且应该消除对 Null<T>
框的需要。
参见 Optional Arguments and Nullability and an example。