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
    

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

  • 相关阅读:
    iframe跨域访问
    Discuz教程:X3.1-x3.2后台admin.php防止直接恶意访问
    JS打开新窗口的2种方式
    怎么让alert弹出框的内容可以换行?
    php判断IE浏览器
    一个表单的多按钮提交
    document.form.command.value
    如何区分处理两个提交按钮
    javascript window.confirm确认 取消对话框实现代码小结
    asp.net mvc 在View中获取Url参数的值
  • 原文地址:https://www.cnblogs.com/Jaryer/p/13952508.html
Copyright © 2011-2022 走看看