• Swift基础语法: 32


    在前面, 我们讲解了初始化时的一些常识和知识点, 现在让我们来看看接下来的知识点:


    1.构造过程中常量属性的修改

    只要在构造过程结束前, 常量的值能确定, 你可以在构造过程中的任意时间点修改常量属性的值.

    class SurveyQuestion {
        let text: String
        var response: String?
        init(text: String) {
            self.text = text
        }
        func ask() {
            println(text)
        }
    }
    let beetsQuestion = SurveyQuestion(text: "How about beets?")
    beetsQuestion.ask()
    // 打印出来的结果: How about beets?
    
    beetsQuestion.response = "I also like beets. (But not with cheese.)"
    println(beetsQuestion.response)
    // 打印出来的结果: Optional("I also like beets. (But not with cheese.)")

    PS: 注意一下, 对于某个实例来讲, 它的常量属性只能定义在本身的初始化中, 不能在继承与它的子类中进行修改.


    2.默认构造器

    在Swift中, 我们在定义结构体时, 如果不加初始化方法, 那么Swift会自动给我们结构体中的每一个成员属性默认添加一个初始化, 比如:

    class ShoppingListItem {
        var name: String?
        var age = 18
        var purchased = false
    }
    
    var item = ShoppingListItem()
    item.name = "xiaoming"
    
    println("My name is (item.name), age is (item.age)")
    
    // 打印出来的结果: My name is Optional("xiaoming"), age is 18

    PS: 例子中的name属性, 我们是没有给它定义任何东西的, 但我们在类里面给它添加了一个可选符号, 一旦添加了这个可选符号时, Swift会判断我们有没有给它初始化值, 如果没有, 它就会返回nil.

    在结构体中我们也是如此, 比如:

    struct Size {
        var rectangle: String?
        var width = 0.0, height = 0.0
    }
    
    let twoByTwo = Size(rectangle: "长方形",  1.5, height: 2.0)
    println("(twoByTwo.rectangle), (twoByTwo.width), (twoByTwo.height)")
    // 打印出来的结果: Optional("长方形"), 1.5, 2.0

    PS: 除了自动添加添加初始化方法之外, 我们可以在结构体里给成员初始化某些值, Swift就会根据我们初始化的值来判断该成员是什么类型, 就像例子中的width和height.


    好了, Swift说到这里就基本上可以动手开发了, 剩下的东西, 就等着大家在项目中慢慢去挖掘~~之后的更新就是怎么做一些小Demo, 大家再见~

  • 相关阅读:
    手机储存卡被写保护怎样删掉
    EXT.NET复杂布局(四)——系统首页设计(下)
    排序算法——选择排序
    NET 程序员十种必备工具 目录
    三种序列化体式格式
    Limitations of SharePoint Web Services
    How to: Update List Items
    哄骗JQuery直接调用asp.net后台办法
    jquery Dialog 弹出窗插件
    EXT.NET高效开发(四)——实用技巧
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4529356.html
Copyright © 2020-2023  润新知