zoukankan      html  css  js  c++  java
  • 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
    

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

  • 相关阅读:
    【LeetCode-回溯】组合总和
    MongoDB复制集成员类型
    Vant中的日期元素在iOS上显示NaN
    Vue风格
    Git设置代理和取消代理的方式
    吴晓波——疫情下的的“危”与“机”
    Vant库在PC端的使用
    买保险,不上当
    Vant的引入方式
    Duplicate keys detected: 'xxx'. This may cause an update error.
  • 原文地址:https://www.cnblogs.com/Jaryer/p/13952508.html
Copyright © 2011-2022 走看看