Swift 方法(十)

class Student {
    //實例方法
    func study() {
        print("學生學習")
    }
    //類方法
    class func run() {
        print("學生跑步")
    }
}

實例方法要寫在它所屬的類型的前后大括號({})之間。
實例方法能夠隱式訪問它所屬類型的所有的其他實例方法和屬性。
實例方法只能被它所屬的類的某個特定實例調用。
實例方法不能脫離于現存的實例而被調用。

//實例方法調用
var s = Student()
s.study()

//類方法
Student.run()

在外部調用方法的時候,可以用下劃線(_)來忽略參數的外部名稱

//這里類拓展
extension Student{
    //下劃線的用法
    //food:內部參數
    func eat(_ food: String, time: Int) {
        print("學生吃\(food), 吃了\(time)分鐘")
    }
}
s.eat("火雞", time: 5)
//類型的每一個實例都有一個隱含屬性叫做self,self 完全等同于該實例本身。
//這個地方就要說到OC的方法,底層實現就是C函數,

CMethodImp(id self, SEL _cmd,id arg)
默認底層都有兩個參數,self 當前對象或者類, _cmd當前方法的方法編號 @selector(CMethodImp:):對比類似self
現在swift在方法中也能拿到self,還有#function 我們也可以猜測底層實現

extension Student {
    //實例方法的測試
    func testSelfCmd() {
        print(self,#function)
    }
    //類方法的測試
    class func testClassSelfCmd() {
        print(self,#function)
    }
}
s.testSelfCmd()
Student.testClassSelfCmd()

Swift HelloWorld(一)
Swift 基本數據類型(二)
Swift 字符串(三)
Swift 閉包(Closures)(四)
Swift 集合類型(五)
Swift 函數(六)
Swift 類(七)
Swift 結構體、枚舉(八)
Swift 屬性(九)
Swift 方法(十)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容