Swift基础--方法

Swift基础--方法

swift中方法分为实例方法和静态方法,方法时于默写特定类型相关联的函数.类,结构体,枚举都可以定义实例方法,也可以定义静态方法.

一,实例方法

实例方法: 给特定类型实例封装的具体功能函数. 实例方法使用与类,结构体,枚举

1.1,使用类中定义的实例方法

首先在勒种定义方法,然后通过创建类的实例,是哪个"实例.方法名"即可调用,如:

class Player {
    func run() {
        print(" run.........")
    }
}

let player = Player()
player.run()
out:
run.........
复制代码

1.2,使用结构体中定义的实例方法

首先在结构体中定义方法,要在定义的方法前添加关键字"mutating"来声明这个方法是"变异方法",如果在此方法中还要钓友结构体中的属性,则必须在调用属性前添加"self."来证明属性来源于此结构体.然后通过创建类的实例,使用"实例.方法名"进行调用,如:

struct Point {
    var x:CGFloat = 0, y: CGFloat = 0
    mutating func safeZone(x: CGFloat, y: CGFloat) {
        self.x = x
        self.y = y
        print("x:\(x), y:\(y)")
    }
}

var point = Point()
point.safeZone(x: 100, y: 100)
out:
x:100.0, y:100.0
复制代码

1.3 使用枚举中定义的实例方法

枚举中定义的实例方法和结构体一样,要在定义的方法前添加"mutating"关键字来声明这个方法时"变异方法",如果在此方法中还要调用枚举中的匹配枚举值,则必须使用"self"来证明匹配枚举值来源于此枚举,然后通过创建枚举的实例来调用方法,如:

enum Duration {
    case east,south,west,north
    mutating func getDuration() {
        print("duration:\(self)")
        switch self {
        case .east:
            self = .west
        case .south:
            self = .north
        case .west:
            self = .east
        case .north:
            self = .south
        }
         print("对立的方向:\(self)")
    }
}

var duration = Duration.east
duration.getDuration()
out:
对立的方向:west
复制代码

二,静态方法

静态方法: 不用创建特定类型的实例就能调用的具体功能函数 静态方法适用于类,结构体

2.1 使用类中定义的静态方法

首先在勒种定义方法,通过在方法名前添加关键字"class" 或"static",然后使用"类名.方法名" 即可调用,如果方法中包含调用属性,此属性必须是静态属性(静态属性也是在普通属性前面添加关键字 "static"),如:

class People {
    static var name: String = "kobe"
    static func getName() {
        print("name:\(name)")
    }
}

People.getName()
out:
name:kobe
复制代码

2.2 使用街骨头中定义的静态方法

通过在方法名前添加关键字"static",然后使用"结构体.方法名"即可调用,如果方法中包含调用属性,那么此属性必须是静态属性(静态属性也是在普通属性前面添加关键字 "static"),如:

struct Z {

    static var z: CGFloat = 0
    static func getZ() {
        print("z:\(z)")
    }
}
Z.getZ()
out:
z:0
## hi 各位大佬,如果您喜欢我的文章,可以在以下平台关注我
[个人网站](https://shunyangsky.com)

微博:[顺扬sky](https://weibo.com/2445151355/profile?topnav=1&wvr=6&is_all=1) 

简书:[顺扬sky](https://www.jianshu.com/u/163fccb10ca5)

掘金:[顺扬sky](https://juejin.im/user/59a67546518825241e223768)

[CSDN博客](https://me.csdn.net/u011137073)复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值