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
类型的实例。
我最近遇到了如下代码:
public class Foo {
public static init(_ bar : Int) -> Int { ... }
}
我是否可以假设这只是一个任意函数,但可以称为 Foo(42)
?
这种调用的结果仍然是 Int
并且不会导致构建 Foo
对象。
init
保留用于创建特定类型的 initializer。
如果可以解决您的目的,您可以尝试使用 static
修饰符创建 subscript
。
public class Foo {
static subscript(_ bar: Int) -> Int {
return bar + 10
}
}
你可以像这样使用它,
let value = Foo[1] //11
以上代码不会创建任何 Foo
类型的实例。