類型屬性和類型方法方法
類型屬性
使用關鍵字static
來定義結構體和枚舉的類型屬性,關鍵字class
來為類定義類型屬性。
語法:
struct Structname {
static var storedTypeProperty = " "
static var computedTypeProperty: Int {
// 這里返回一個 Int 值
}
}
enum Enumname {
static var storedTypeProperty = " "
static var computedTypeProperty: Int {
// 這里返回一個 Int 值
}
}
class Classname {
class var computedTypeProperty: Int {
// 這里返回一個 Int 值
}
}
類似於實例的屬性,類型屬性的訪問也是通過點運算符(.)來進行。但是,類型屬性是通過類型本身來獲取和設置,而不是通過實例。
struct StudMarks {
static let markCount = 97
static var totalCount = 0
var InternalMarks: Int = 0 {
didSet {
if InternalMarks > StudMarks.markCount {
InternalMarks = StudMarks.markCount
}
if InternalMarks > StudMarks.totalCount {
StudMarks.totalCount = InternalMarks
}
}
}
}
var stud1Mark1 = StudMarks()
var stud1Mark2 = StudMarks()
stud1Mark1.InternalMarks = 98
print(stud1Mark1.InternalMarks) //97
stud1Mark2.InternalMarks = 87
print(stud1Mark2.InternalMarks) //87
類型方法
- 結構體和枚舉的類型方法使用
static
關鍵字來聲明 - 類的類型方法使用
class
關鍵字來聲明
class Math{
class func abs(number:Int) -> Int{
if number < 0 {
return (-number)
}
else{
return number
}
}
}
struct absno{
static func abs(number:Int)->Int{
if number < 0 {
return (-number)
}
else{
return number
}
}
}
let no = Math.abs(number: -35)
let num = absno.abs(number: -5)
print(no) //35
print(num) //5
類型屬性/方法只能由類本身來進行調用