Swift 函数中默认值的新语法
New syntax for default values in Swift functions
我刚刚注意到 Xcode
(7.1) 的最新测试版更改了 Swift
中 print
函数的签名。
新语法是:
public func print(items: Any..., separator: String = default, terminator: String = default)
有人知道这个 default
是什么东西吗?您如何指定默认值,而不仅仅是它有一个默认值?
默认separator
是单行space,默认terminator
是换行
要为其中任何一个使用不同的值,只需在调用函数时将所需值作为参数传递即可 - 例如:
print("first", "second", separator: "-", terminator: "...")
print("third")
// => "first-second...third"
函数签名中的default
表示它有一个默认值,你不必传递参数。
func add(a: Int = 0, b: Int = 0) -> Int {
return a + b
}
// "normal" function call
add(2, b: 4) // 6
// no specified parameters at all
add() // 0; both a and b default to 0
// one parameter specified
// a has no external name since it is the first parameter
add(3) // 3; b defaults to 0
// b has an external name since it is not the first parameter
add(b: 4) // 4; a defaults to 0
在 print
函数的情况下,separator
默认为 " "
,terminator
为 "\n"
。
有4种调用方式:
struct SomeItem {}
print(SomeItem(), SomeItem())
print(SomeItem(), SomeItem(), separator: "_")
print(SomeItem(), SomeItem(), terminator: " :) \n")
print(SomeItem(), SomeItem(), separator: "_", terminator: " :) \n")
打印:
SomeItem() SomeItem()
SomeItem()_SomeItem()
SomeItem() SomeItem() :)
SomeItem()_SomeItem() :)
我刚刚注意到 Xcode
(7.1) 的最新测试版更改了 Swift
中 print
函数的签名。
新语法是:
public func print(items: Any..., separator: String = default, terminator: String = default)
有人知道这个 default
是什么东西吗?您如何指定默认值,而不仅仅是它有一个默认值?
默认separator
是单行space,默认terminator
是换行
要为其中任何一个使用不同的值,只需在调用函数时将所需值作为参数传递即可 - 例如:
print("first", "second", separator: "-", terminator: "...")
print("third")
// => "first-second...third"
函数签名中的default
表示它有一个默认值,你不必传递参数。
func add(a: Int = 0, b: Int = 0) -> Int {
return a + b
}
// "normal" function call
add(2, b: 4) // 6
// no specified parameters at all
add() // 0; both a and b default to 0
// one parameter specified
// a has no external name since it is the first parameter
add(3) // 3; b defaults to 0
// b has an external name since it is not the first parameter
add(b: 4) // 4; a defaults to 0
在 print
函数的情况下,separator
默认为 " "
,terminator
为 "\n"
。
有4种调用方式:
struct SomeItem {}
print(SomeItem(), SomeItem())
print(SomeItem(), SomeItem(), separator: "_")
print(SomeItem(), SomeItem(), terminator: " :) \n")
print(SomeItem(), SomeItem(), separator: "_", terminator: " :) \n")
打印:
SomeItem() SomeItem()
SomeItem()_SomeItem()
SomeItem() SomeItem() :)
SomeItem()_SomeItem() :)