Swift方法

来源:互联网 发布:沥青混合料油石比数据 编辑:程序博客网 时间:2024/05/16 12:44
类、结构体、枚举都可以定义实例方法和类方法

Swift默认仅给方法的第一个参数名称一个局部参数名称;迷人同时给第二个和后续参数名称局部参数名称和外部参数名称。
class Counter {
 var count: Int = 0
 func incrementBy(amount: Int, numberOfTimes: Int) {
 count += amount * numberOfTimes
 }
 }
默认情况下swift只把amount 作为一个局部名称,但是把numberOfTimes既看作局部参数名称又看作外部参数名称
 你可以自己添加一个显式的外部名称或者用一个井号(#)作为第一个参数的前缀来把这个局部名称当作外部名称使用。
相反, 如果你不想为方法的第二个及后续的参数?供一个外部名称, 可以通过使用下划线 (_)作为该参数的显式外部名称,这样b做将覆盖默认行为

结构体和枚举类型是值类型,一般情况下,值类型德属性在它的实力发方法中是不能被修改的
但是,如果你确实需要在?个具体的方法中修改结构体或者枚举的属性,你可以选择变异
(mutating)这个方法,然后方法就可以从方法内部改变它的属性;并且它做的任何改变在方
法结束时还会保留在原始结构中。 方法还可以给它隐含的 self 属性赋值一个全新的实例, 这
个新实例在方法结束后将替换原来的实例。
要使用变异方法, 将关键字 mutating 放到方法的 func 关键字之前就可以了:

注意:不能在结构体类型常量上调用变异方法,因为常量的属性不能被改变,即使想改变的是常量的变量属性也不行
变异方法能够赋给隐含属性 self 一个全新的实例
struct Point{
var x = 0.0,y = 0.0
mutating func move(deltaX:Double,y deltaY:Double){
self = Point()
}
}
枚举的变异方法可以把 self 设置为相同的枚举类型中不同的成员:
enum TriStateSwitch{
case Off, Low, High
mutating func next(){
switch self{
case Off:self = Low
case Low:
self = High
case High:
self = Off
}
}
}

类型方法
类型本身本身调用的方法叫做类型方法。声明类的类型方法关键字class声明结构体和枚举的类型方法,关键字static

一个类型方法可以调用本类中另一个类型方法的名称,而无需再方法名称前加上类型名称的前缀。结构体和枚举同理









1 0
原创粉丝点击