原创文章,欢迎转载。转载请注明:关东升的博客
计算属性本身不存储数据,而是从其他存储属性中计算得到数据。
计算属性概念:
计算属性提供了一个getter(取值访问器)来获取值,以及一个可选的setter(设置访问器)来间接设置其他属性或变量的值。计算属性的语法格式如下:
面向对象类型类型名 { 存储属性 ...... var 计算属性名: 属性数据类型 { get { return 计算后属性值 } set (新属性值) { ...... } } }
定义计算属性比较麻烦,要注意后面的几个大括号的对齐关系。
我们先看一个示例:
import Foundation class Employee { var no: Int = 0 var firstName: String = "Tony" //存储属性 var lastName: String = "Guan" //存储属性 var job: String? var salary: Double = 0 lazy var dept: Department = Department() var fullName: String { //计算属性 get { return firstName + "." + lastName //返回拼接的结果 } set (newFullName) { //存储传递进来的参数值 var name = newFullName.componentsSeparatedByString(".") firstName = name[0] lastName = name[1] } } } struct Department { let no: Int = 0 var name: String = "" } var emp = Employee() print(emp.fullName) //取出属性值 emp.fullName = "Tom.Guan" //给属性赋值 print(emp.fullName)
只读计算属性:
计算属性可以只有getter访问器,没有setter访问器,这就是只读计算属性。指定计算属性不仅不用写setter访问器,而且get{}代码也可以省略。与上一节相比,代码将大大减少。修改上一节示例为只读计算属性,代码如下:
class Employee { var no: Int = 0 var firstName: String = "Tony" var lastName: String = "Guan" var job: String? var salary: Double = 0 lazy var dept: Department = Department() var fullName: String { //简洁的setter访问器 return firstName + "." + lastName } } struct Department { let no: Int = 0 var name: String = "" } var emp = Employee() print(emp.fullName) 只读计算属性不能够赋值,下列语句是错误的。 emp.fullName = "Tom.Guan"
相关推荐
从零开始学swift,图灵原创,关东升著。基于swift2.x。2016年3月版
最新的关于学习swift开发的书籍,讲的非常好
Swift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习笔记含项目代码.zipSwift学习...
以下是从零开始学习SwiftUI的一些建议: 了解Swift语言基础:SwiftUI是用Swift语言编写的,因此了解Swift语言的基础知识是非常重要的。你可以从苹果官方文档、在线教程或书籍中学习Swift语言。 学习SwiftUI基本概念...
精选Swift相关的学习笔记与资料集合打包上传给大家,这里的笔记非常的容易看得懂,基本上学习编程的看这一堆东西就能很快上上手了,非常的实用。
Swift学习的笔记,总结性的东西,很实用,非常适合新手看,之前学过OC的朋友基本上一看就能上手,非常的实用。
swift 学习笔记 之 扩展
学习swift的笔记,自己记录的,必须50字,凑够了算,谢谢
NULL 博文链接:https://duchengjiu.iteye.com/blog/2184242
贝塞尔曲线使用——模拟心跳曲线
swift 学习笔记 之 函数 编程题
IOS开发-Swift-基础知识学习笔记
ios开发 swift语言学习资料,入门学习,简单易懂;ios开发 swift语言学习资料,入门学习,简单易懂
目前最全最火的swift学习资源和笔记,非常适合小白入门 目前最全最火的swift学习资源和笔记,非常适合小白入门 目前最全最火的swift学习资源和笔记,非常适合小白入门 目前最全最火的swift学习资源和笔记,非常...
学习swift的笔记,部分代码来自教程。打包的playground方便学习和查看效果。
Swift学习笔记 更新日志 学习资料 《The Swift Programming Language》中文版
Swift_100days, 从 [100 Days of Swift ] 学习 Swift Swift_100days如果你刚刚开始学习swift,的话,我建议你从 3.0开始学习 Swift ~ !我开始学习 Swift,因为接下来的天,我 。这是我按天排序的演示,如果我有时间...
Swift 学习资料.zip,在Playgrounds上编写的Apple Swift语言摘要
iOS渐变,支持——线性渐变,径向渐变,渐变动画,lable字体渐变,lable字体渐变动画
Swift学习资料