Swift - 重载静态方法

时间:2016-06-16 11:49:00

标签: swift overloading

我一直在尝试为Swift 2中的公共类重载静态方法。

怎么可能?这类似于我想要实现的目标:

static func test(message: String) -> Void)?) { ### }

static func test(message: String, number: Int) -> Void)?) { ### }

1 个答案:

答案 0 :(得分:0)

目前还不清楚你正在尝试做什么,但还有两个额外的右括号。看起来你可能正试图采取封闭论证吗?

如果意图是在第一种方法中采用String参数(并在第二种方法中采用String& Int)并返回Void,那么您的语法应该是这样的:

static func test(message: String) { /* implementation */ }

static func test(message: String, number: Int) { /* implementation */ }

但是,如果意图是采用一个String并且不返回任何内容的可选闭包,则语法如下所示:

static func test(closure: ((String) -> Void)?) {
    // implementation
}

然后如果闭包还需要Int

static func test(closure: ((String, Int) -> Void)?) {
    // implementation
}