《从零开始学Swift》学习笔记(Day 32)——计算属性
来源:互联网 发布:宜人贷要淘宝账号密码 编辑:程序博客网 时间:2024/04/29 18:41
计算属性本身不存储数据,而是从其他存储属性中计算得到数据。
计算属性概念:
计算属性提供了一个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"
计算属性概念:
计算属性提供了一个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"
0 0
- 《从零开始学Swift》学习笔记(Day 32)——计算属性
- 《从零开始学Swift》学习笔记(Day 32)——计算属性
- 《从零开始学Swift》学习笔记(Day 50)——扩展计算属性、方法
- 《从零开始学Swift》学习笔记(Day 50)——扩展计算属性、方法
- 《从零开始学Swift》学习笔记(Day 31)——存储属性
- 《从零开始学Swift》学习笔记(Day 33)——属性观察者
- 《从零开始学Swift》学习笔记(Day 34)——静态属性是怎么回事?
- 《从零开始学Swift》学习笔记(Day 44)——重写属性
- 《从零开始学Swift》学习笔记(Day 31)——存储属性
- 《从零开始学Swift》学习笔记(Day 33)——属性观察者
- 《从零开始学Swift》学习笔记(Day 34)——静态属性是怎么回事?
- 《从零开始学Swift》学习笔记(Day 38)——构造函数与存储属性初始化
- 《从零开始学Swift》学习笔记(Day 44)——重写属性
- 《从零开始学Swift》Swift 2.0学习笔记(Day 38)——构造函数与存储属性初始化
- 《从零开始学Swift》学习笔记(Day 1)——我的第一行Swift代码
- 《从零开始学Swift》学习笔记(Day 2)——使用Web网站编写Swift代码
- 《从零开始学Swift》学习笔记(Day 3)——Swift 2.0之后增加的关键字
- 《从零开始学Swift》学习笔记(Day 17)——Swift中数组集合
- 深入AngularJs(2)
- 用java做音乐识别软件
- LeetCode 13. Roman to Integer 解题报告
- C语言格式化输出
- 主键和外键
- 《从零开始学Swift》学习笔记(Day 32)——计算属性
- WebView的JavaScript与本地代码三种交互方式
- 使用Visual Studio Code搭建Windows下的Postgresql编译、调试环境
- vim 自定义函数
- Java线程池关闭1-shutdown和isTerminated
- 总结
- java 二叉树遍历+查找祖先节点
- Linux内核--网络栈实现分析(一)--网络栈初始化
- Orcale查询树形结构