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

类型属性/方法只能由类本身来进行调用

posted @ 2020-11-10 10:31  JunCode  阅读(723)  评论(0编辑  收藏  举报