对于最后一行,为什么不应该这样:
greet(name: "Bob", day: "Tuesday")
任何人都有一些想法?
func greet(name: String, day: String) -> String {
return "Hello \(name), today is \(day)."
}
greet("Bob", day: "Tuesday")
答案 0 :(得分:2)
“默认情况下,第一个参数省略其外部名称,第二个和后续参数使用其本地名称作为外部名称。”
摘自:Apple Inc.“Swift编程语言(Swift 2.0)。”,部分函数参数名称
Apple建议这样做,以便代码简洁易读。通常,函数名称包括第一个参数的指示。但是,如果您确实要强制使用外部参数名称,请同时指定外部和本地参数标签。
func greet(name name: String, day: String) -> String {
return "Hello \(name), today is \(day)."
}
答案 1 :(得分:0)
函数中的每个参数都有两个名称,外部名称和内部人员名称。
外人名称是在调用函数时使用的名称。 内幕人名是您可以在函数内调用的名称。
你的职能:
func greet(name: String, day: String) -> String {
return "Hello \(name), today is \(day)."
}
可以像:
一样调用greet("Bob", day: "Tuesday")
您不需要为第一个参数添加外部名称,因为swift不需要这样做。虽然有必要把它用于其他参数(而不是第一个)
您可以使用外部名称参数强制调用函数,即使对于第一个参数也是如此:
func greet(name: String, day: String) -> String {
return "Hello \(name), today is \(day)."
}
然后你的电话会是:
greet(name: "Bob", day: "Tuesday")
另一个例子:
func testtest(outside1 inside1: String, outside2 inside2: String) {
print("inside1 = \(inside1)") // okay
print("inside2 = \(inside2)") // okay
print("outside1 = \(outside1)") // ERROR outside1 doesn't exist
}
你可以这样称呼它:
testtest(outside1: "wow", outside2: "meoao")