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
    

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

  • 相关阅读:
    Redis Cluter
    数据库设计范式
    kvm虚拟化
    架构前端
    集群架构
    初识shell编程
    网络知识
    Linux三剑客
    Linux磁盘管理
    高性能异步爬虫
  • 原文地址:https://www.cnblogs.com/Jaryer/p/13952508.html
Copyright © 2011-2022 走看看