swift从入门到精通09-方法

339 阅读1分钟

1.定义

方法有实例方法,类型方法。枚举,结构体,类都可以定义方法。

实例方法:通过实例对象调用方法。

类型方法:通过类型调用,用static或者class修饰。

例子:

class Test {
    //实例方法
    func buyBus() {}
    //对象方法
    static func buyCar() {}
}

var test = Test()
test.buyBus()
Test.buyCar()

2.mutating

结构体和枚举是值类型,默认情况下,值类型的属性不能被自身的实例方法修改。 但是如果在func关键字前加mutating可以允许这种修改行为。

例子:

struct Test2 {
    var x: Int
    var y: Int
    
    mutating func buyIphone(a: Int, b: Int) -> Void {
        x += a
        y += b
    }
}

3.discardableResult

 在func前面加个@discardableResult,可以消除:函数调用后返回值未被使用的警告。

例子:

struct Test2 {
    var x: Int
    var y: Int
    
    @discardableResult mutating func buyIphone(a: Int, b: Int) -> Int {
        x += a
        y += b
        return x + y
    }
}


var test2  = Test2(x: 0, y: 0)
test2.buyIphone(a: 5, b: 10)


上一篇文章:swift从入门到精通08-属性