美文网首页
实例方法的动态调用

实例方法的动态调用

作者: fordring2008 | 来源:发表于2017-02-04 10:18 被阅读35次

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 是不能用类似的写法的。

// 另外,如果存在和实例方法相同签名的类方法的时候,默认调用的是类方法

相关文章

网友评论

      本文标题:实例方法的动态调用

      本文链接:https://www.haomeiwen.com/subject/djyjittx.html