加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 02:17:35 所属栏目:百科 来源:网络整理
导读:在前面,我们讲解了初始化时的一些常识和知识点,现在让我们来看看接下来的知识点: 1.构造过程中常量属性的修改 只要在构造过程结束前,常量的值能确定,你可以在构造过程中的任意时间点修改常量属性的值. class SurveyQuestion { let text: String var response

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


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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读