Swift方法中的多个未命名参数

时间:2014-12-07 00:38:52

标签: function swift methods parameters

据我所知,默认情况下Swift函数有未命名的参数,但Swift方法没有(不包括第一个参数)。例如,给出以下定义:

func foo(a: Int, b: Int) -> Int {
    return a + b
}

class MyClass {
    func bar(a: Int, b: Int) -> Int {
        return a + b
    }
}

我必须使用未命名的参数调用foo

foo(10, 20) // fine

foo(a: 10, 20) // error
foo(10, b: 20) // error
foo(a: 10, b: 20) // error

我必须使用第一个未命名的参数调用bar,并且第二个参数名为:

MyClass().bar(10, b: 20) // fine

MyClass().bar(10, 20) // error
MyClass().bar(a: 10, b: 20) // error
MyClass().bar(a: 10, 20) // error

我知道我可以使用#符号创建任何未命名的参数,但我的问题是:有什么方法可以使bar的两个参数都没有命名?

换句话说,我想以这样的方式声明bar,我可以将其称为普通函数

MyClass().bar(10, 20)

这在Swift中可行吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:19)

是的,您在第二个参数名称前加上_,以使其具有匿名性:

class MyClass {
    func bar(a: Int, _ b: Int) -> Int {
        return a + b
    }
}