在不加特定修飾符的情況下,在swift型別中定義的屬性,方法都是屬於例項的。
可以使用static來宣告列舉和結構體的型別屬性/方法
使用class來宣告類的型別屬性/方法
swift對型別成員和例項成員的區分涇渭分明:通常來說,型別成員不允許訪問例項成員,例項成員也不允許訪問型別成員
/*列舉可以包含型別儲存屬性和型別計算屬性,
列舉可以包含例項計算屬性,不能包含例項儲存屬性
*///列舉的型別屬性
enum seasonz
set}
}seasonz.desc = "jijielei"
print(seasonz.name)
seasonz.info = "new info"
print(seasonz.info)
/*結構體可以包含型別屬性,包括型別儲存屬性和型別計算屬性
結構體可以包含例項計算屬性和例項儲存屬性
*///結構體包含型別屬性
struct fkrange
}fkrange.desc = "描述範圍的結構體"
print(fkrange.desc)
print(fkrange.maxwidth)
print(fkrange.maxheight)
print(fkrange.maxarea)
/*類中不能定義型別儲存屬性,只能包含型別計算屬性
類中可以包含例項儲存屬性,例項計算屬性
*///不能定義型別儲存屬性可能是為了保持與oc的相容
class users
set}
}print(users.namemaxlength)
users.namemaxlength = 20
//列舉的值型別方法
enum seasonon
static func setdesc(desc : string)
}seasonon.info()
seasonon.setdesc("describe the change of the weather")
print(seasonon.desc)
/*型別方法不能直接訪問例項成員,如果希望在型別方法中訪問例項成員,必須先建立該型別的例項,然後以例項作為呼叫者來訪問例項成員
*///類的型別方法
class math
class func abs(value:double) -> double
class func pow(base:double, _ exponent:int) -> double
return result
}class func radian2degree(redian:double) -> double
class func degree2radian(degree:double) -> double
}print(math.pi)
print(math.pow(2, 4))
print(math.radian2degree(1.57))
print(math.degree2radian(45))
swift 9 型別轉換
型別轉換可以判斷例項的型別,也可以將例項看做是其父類或者子類的例項。型別轉換在 swift 中使用 is 和 as 操作符實現。這兩個操作符提供了一種簡單達意的方式去檢查值的型別或者 轉換它的型別。你也可以用它來檢查乙個類是否實現了某個協議。你可以將型別轉換用在類和子類的層次結構上,檢查特定類例項的...
Swift18 型別轉換
定義乙個型別層次作為例子 檢查型別 向下轉換 any和anyobject的型別轉換。型別轉換可以判斷例項的型別,也可以將例項看作是其父類或者子類的例項。型別轉換在swift中使用is和as操作符實現。這兩個操作符提供了一種簡單達意的方式去檢查其值的型別或者轉換它的型別。也可以用它來檢查乙個型別是否實...
swift 的型別屬性和方法
型別屬性 使用關鍵字static來定義結構體和列舉的型別屬性,關鍵字class來為類定義型別屬性。語法 struct structname enum enumname class classname 類似於例項的屬性,型別屬性的訪問也是通過點運算子 來進行。但是,型別屬性是通過型別本身來獲取和設定,...