Swift学习笔记(11)—— 方法

11.方法

方法就是与默写特定类型(类、结构体、枚举类)相关联的函数。

结构体和枚举能够定义方法是 Swift 与 C/Objective-C 的主要区别之一。

实例方法

就是在类、结构体、枚举类中的一般方法。

方法的局部参数名称和外部参数名称

实例方法的第一个参数名称默认为局部参数名称(调用的时候不需要写参数名);其他的参数名称默认为局部参数名称和外部参数名称——(外部参数名称调用的时候需要显式指定)。

class C {
    var number :Int = 1
    func addTo(newNumber :Int , number2:Int) {
        number += (newNumber + number2)
    }
}

var c = C()
println(c.number) //1
c.addTo(4,number2:5) // number2 参数名称需要显式指定
println(c.number) //10

当然这是默认情况,可以像其他方法一样自行更改内部外部参数名的其他方式。

self属性

大概相当于是JAVA类中的this吧。

变异方法

一般情况下,值类型的属性不能在实例方法中被修改。(结构体和枚举都是值类型)
如果想在实例方法中修改值类型的属性,需要用mutating关键字标识方法为变异的

struct C { // 注意跟上面的 class C 区别,这里用了struct,是一个结构体
    var number :Int = 1
    // 因为addTo方法修改了属性值,所以这里必须私用"mutating"关键词,否则会报错
    mutating func addTo(newNumber :Int , number2:Int) {
        number += (newNumber + number2)
    }
}

变异方法中可以修改self的值,使其本身值改变。

类型方法

就相当于JAVA的静态方法。
使用static关键字标识。



这笔记只是给我自己看的,用以标记一些我觉得需要记的或者有意思的一些知识点,有很多我觉得没必须要赘述的东西就没记,所以是不系统的,只作提示用。
感谢 numbbbbb以及其他贡献者: https://github.com/numbbbbb/the-swift-programming-language-in-chinese
当然,还有英文页: https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/BasicOperators.html#//apple_ref/doc/uid/TP40014097-CH6-XID_70


http://www.barryzhang.com/archives/262

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*