zoukankan      html  css  js  c++  java
  • Swift语言精要

    1. Stored Property

    eg:

    var number: Int = 0

    2. Computed Property

    eg:

    var area : Double {
      get {
        return width * height
      }

         ...

    }

    完整代码如下:

    class Rectangle {
        var  Double = 0.0
        var height: Double = 0.0
        var area : Double {
            // computed getter
            get {
                return width * height
            }
            // computed setter
            set {
                // Assume equal dimensions (i.e., a square)
                width = sqrt(newValue)
                height = sqrt(newValue)
            }
        }
    }

    测试代码:

    var rect = Rectangle()
    rect.width = 3.0
    rect.height = 4.5
    rect.area // = 13.5
    rect.area = 9 // width & height now both 3.0

    3. Property Observer(属性观察者)

    class PropertyObserverExample {
        var number : Int = 0 {
            willSet(newNumber) {
                println("About to change to (newNumber)")
            }
            didSet(oldNumber) {
                println("Just changed from (oldNumber) to (self.number)!")
            }
        }
    }

    测试代码如下:

    var observer = PropertyObserverExample()
    observer.number = 4
    // prints "About to change to 4", then "Just changed from 0 to 4!"

    4. Lazy Property(属性迟绑定)

    class SomeExpensiveClass {
        init(id : Int) {
            println("Expensive class (id) created!")
        }
    }
    
    class LazyPropertyExample {
        var expensiveClass1 = SomeExpensiveClass(id: 1)
        lazy var expensiveClass2 = SomeExpensiveClass(id: 2)    
        init() {
            println("First class created!")
        }
    }

    测试代码如下:

    var lazyExample = LazyPropertyExample()
    // prints "Expensive class 1 created", then "First class created!"
    lazyExample.expensiveClass1 // prints nothing, it's already created
    lazyExample.expensiveClass2 // prints "Expensive class 2 created!"
  • 相关阅读:
    初始mysql语句
    MySQL 数据库 的安装和基本管理
    POJ 3685
    总结-LCT
    $亲属关系$
    一:包装好和吹出去 二:三国心得
    创业心得
    阿里前CEO卫哲的万字长文:被马云骂醒,看透B2B 10大核心问题!
    英雄不问出处, 看看商界大佬年轻时受过的苦
    最应该富养的,不是孩子是妻子!
  • 原文地址:https://www.cnblogs.com/davidgu/p/5346042.html
Copyright © 2011-2022 走看看