swift

Swift 函数忽略参数标签(_)

2017-10-13  本文已影响0人  Jude_XC

swift函数中经常可以看到_,比如AppDelegate中的入口函数

初看时让我很费解,马上就去查阅了文档,原来这里牵涉到函数参数标签的概念,_为忽略参数标签

文档摘录如下:

函数参数标签和参数名称

每个函数参数都有一个参数标签( argument label )以及一个参数名称( parameter name )。参数标签在调用函

数的时候使用;调用的时候需要将函数的参数标签写在对应的参数前面。参数名称在函数的实现中使用。默认情

况下,函数参数使用参数名称来作为它们的参数标签。

func someFunction(firstParameterName: Int, secondParameterName: Int) {

// 在函数体内,firstParameterName 和 secondParameterName 代表参数中的第一个和第二个参数值

}

someFunction(firstParameterName: 1, secondParameterName: 2)

所有的参数都必须有一个独一无二的名字。虽然多个参数拥有同样的参数标签是可能的,但是一个唯一的函数标

签能够使你的代码更具可读性。

指定参数标签

你可以在函数名称前指定它的参数标签,中间以空格分隔:

func someFunction(argumentLabel parameterName: Int) {

// 在函数体内,parameterName 代表参数值

}

这个版本的greet(person:)函数,接收一个人的名字和他的家乡,并且返回一句问候:

func greet(person: String, from hometown: String) -> String {

return "Hello \(person)!  Glad you could visit from \(hometown)."

}

print(greet(person: "Bill", from: "Cupertino"))

// 打印 "Hello Bill! Glad you could visit from Cupertino."

参数标签的使用能够让一个函数在调用时更有表达力,更类似自然语言,并且仍保持了函数内部的可读性以及清

晰的意图。

忽略参数标签

如果你不希望为某个参数添加一个标签,可以使用一个下划线(_)来代替一个明确的参数标签。

func someFunction(_ firstParameterName: Int, secondParameterName: Int) {

// 在函数体内,firstParameterName 和 secondParameterName 代表参数中的第一个和第二个参数值

}

someFunction(1, secondParameterName: 2)

如果一个参数有一个标签,那么在调用的时候必须使用标签来标记这个参数。

上一篇下一篇

猜你喜欢

热点阅读