Swift基础语法: 32 - Swift的构造过程中常量属性的修改, 默认构造器

前端之家收集整理的这篇文章主要介绍了Swift基础语法: 32 - Swift的构造过程中常量属性的修改, 默认构造器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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


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: "长方形",width: 1.5,height: 2.0)
println("\(twoByTwo.rectangle),\(twoByTwo.width),\(twoByTwo.height)")
// 打印出来的结果: Optional("长方形"),1.5,2.0

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


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

猜你在找的Swift相关文章