zoukankan      html  css  js  c++  java
  • 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, 大家再见~

  • 相关阅读:
    牛人的博客,备忘
    dev gridlookupedit
    Oracle with as 用法
    动态加载DLL对接第三方接口
    Oracle执行计划不稳定
    JAVA Cannot find class [×××] for bean with name '××' defined in class path resource [×××] 问题解决方法
    JAVA B/S通过摄像头采集图片信息解决方案。
    使控件悬浮在页面上不随滚动条变化的JQUERY插件
    原生态水平和垂直拉伸的JQUERY插件
    javascript实现继承的类
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4529356.html
Copyright © 2011-2022 走看看