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

实例方法的动态调用

作者: 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