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 方法(十)