swift 的類型屬性和方法


類型屬性和類型方法方法

類型屬性

使用關鍵字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

類型屬性/方法只能由類本身來進行調用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM