Swift:静态初始化()

Swift: static init()

我最近遇到了如下代码:

public class Foo {
    public static init(_ bar : Int) -> Int { ... }
}

我是否可以假设这只是一个任意函数,但可以称为 Foo(42)? 这种调用的结果仍然是 Int 并且不会导致构建 Foo 对象。

Swift 中的

init 保留用于创建特定类型的 initializer

如果可以解决您的目的,您可以尝试使用 static 修饰符创建 subscript

public class Foo {
    static subscript(_ bar: Int) -> Int {
        return bar + 10
    }
}

你可以像这样使用它,

let value = Foo[1] //11

以上代码不会创建任何 Foo 类型的实例。