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
    

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

  • 相关阅读:
    Django重要组件(Auth模块)
    Django框架深入了解(总结整理)
    ORM(数据库对象关系映射)代码重写
    Django框架深入了解——DRF之序列化、反序列化
    让无线更自由 TOTOLINK EX750无线中继评测
    matlab常用知识
    点云数据
    运动恢复结构
    Ubuntu下简单的QT绘图程序
    英语词语解释
  • 原文地址:https://www.cnblogs.com/Jaryer/p/13952508.html
Copyright © 2011-2022 走看看