关于Swift语言中的“func”类的一些问题?

时间:2015-10-25 23:49:46

标签: swift class

对于最后一行,为什么不应该这样:

greet(name: "Bob", day: "Tuesday")

任何人都有一些想法?

func greet(name: String, day: String) -> String {
    return "Hello \(name), today is \(day)."
}

greet("Bob", day: "Tuesday")

2 个答案:

答案 0 :(得分:2)

“默认情况下,第一个参数省略其外部名称,第二个和后续参数使用其本地名称作为外部名称。”

摘自:Apple Inc.“Swift编程语言(Swift 2.0)。”,部分函数参数名称

Apple建议这样做,以便代码简洁易读。通常,函数名称包括第一个参数的指示。但是,如果您确实要强制使用外部参数名称,请同时指定外部和本地参数标签。

func greet(name name: String, day: String) -> String {
  return "Hello \(name), today is \(day)."
}

enter image description here

答案 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")