class MyClass{
func method(number: Int) -> Int{
return number + 1
}
class func method1(number: Int) -> Int{
return number
}
}
let object1 = MyClass()
let result = object1.method(number: 1)
// 也可以使用下面
// Swift 可以直接调用 Type.instancMethod 的语法生成一个可以 柯里化的方法
let f = MyClass.method // f 的类型是 (MyClass) -> (Int) -> Int
let f_c : (MyClass) -> (Int) -> Int = MyClass.method // 这是静态版本
let object2 = MyClass()
let result1 = f(object2)(1)
// 是上面 f 的字面量转换
let f1 = { (obj: MyClass) in obj.method }
// 这种方法是适用于实例方法,对于属性的 getter 或者 setter 是不能用类似的写法的。
// 另外,如果存在和实例方法相同签名的类方法的时候,默认调用的是类方法
网友评论