如何使用下划线参数
func test(currentName name: String, _: Int) {
print("aa\(name) abc");
//how to use _ parameter?
}
test(currentName:"aa", 3)
答案 0 :(得分:2)
_
表示当您调用test
函数时,您不必在第二个参数test(currentName:"aa", 3)
如果你声明你的函数是这样的:
func test(currentName name: String, secondParameter: Int) {
print("aa\(name) abc");
//how to use _ parameter?
}
然后当你调用test
函数时,你必须这样调用:
test(currentName:"aa", secondParameter: 3)
答案 1 :(得分:2)
在Swift中,函数同时具有参数标签和参数名称。这是为了清楚使用这些功能。考虑一下普通的C函数,它被声明为:
string FunctionName(string firstName, string lastName)
查看函数声明,很容易看出每个参数是什么。在这种情况下,firstName和lastName。但是,当在代码中调用它时,它不太明显,特别是如果参数值不是自描述的。例如:
FunctionName("Neil","Armstrong") // Fairly obvious
FunctionName("Bo","Ng") // Not so obvious
在swift中,参数同时包含标签和名称。标签纯粹是为了清晰起见,因此可以更容易地阅读和理解调用该函数的代码,而无需深入了解其定义以完全理解它
let fullName = funcName(firstName: "Bo", lastName: "Ng")
在某些情况下,参数名称完全没必要,例如:
let total = addTwoNumbers(1,2)
因此标签是可选的,用下划线表示
func addTwoNumbers(_ firstVal:Int,_ secondVal:Int)
一般来说,除非你觉得参数是完全自我描述的,否则你应该使用标签来使你写的函数更清晰。
答案 2 :(得分:1)
如果你想使用第二个功能参数,但不想" name"它,你必须将函数的签名更改为func test(currentName name: String, age _: Int)
,然后将第二个参数称为age
。
func test(currentName name: String, _ age: Int) {
print("Name: \(name), age: \(age)")
}
test(name: "Piter", 3)