原創文章,歡迎轉載。轉載請註明:關東昇的博客php
靜態方法與靜態屬性相似,Swift中定義了靜態方法,也稱爲類型方法。靜態方法的定義與靜態屬性相似,枚舉和結構體的靜態方法使用的關鍵字是static;類靜態方法使用的關鍵字是class或static,若是使用static定義,則該方法不能在子類中被重寫(override);若是使用class定義,則該方法能夠被子類重寫。java
結構體靜態方法微信
看一個結構體靜態方法的示例,代碼以下:ide
struct Account { var owner: String = "Tony" //聲明實例屬性帳戶名 static var interestRate: Double = 0.0668 //聲明靜態屬性利率 static func interestBy(amount: Double) -> Double {//定義靜態方法 return interestRate * amount } func messageWith(amount: Double) -> String { //定義實例方法 let interest = Account.interestBy(amount) return "\(self.owner) 的利息是\(interest)" } } //調用靜態方法 print(Account.interestBy(10_000.00)) var myAccount = Account() //調用實例方法 print(myAccount.messageWith (10_000.00))
枚舉靜態方法網站
看一個枚舉靜態方法的示例,代碼以下:spa
enum Account { case 中國銀行 case 中國工商銀行 case 中國建設銀行 case 中國農業銀行 static var interestRate: Double = 0.0668 //聲明靜態屬性利率 static func interestBy(amount: Double) -> Double { //定義靜態方法 return interestRate * amount } } //調用靜態方法 print(Account.interestBy(10_000.00 )) //調用靜態方法
從示例能夠看出,結構體和枚舉的靜態方法使用定義沒有區別。.net
類靜態方法設計
看一個類靜態方法的示例,代碼以下:rest
class Account { var owner: String = "Tony" //帳戶名 //能夠換成static class func interestBy(amount: Double) -> Double { //使用關鍵字class定義靜態方法 return 0.08886 * amount } } //調用靜態方法 print(Account.interestBy(10_000.00 )) //調用靜態方法
歡迎關注關東昇新浪微博@tony_ 關東昇。code
關注智捷課堂微信公共平臺,瞭解最新技術文章、圖書、教程信息
更多精品iOS、Cocos、移動設計課程請關注智捷課堂官方網站:http://www.zhijieketang.com
智捷課堂論壇網站:http://51work6.com/forum.php