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, 大家再见~

转载于:https://www.cnblogs.com/iOSCain/p/4529356.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值