《从零开始学Swift》学习笔记(Day 31)——存储属性

简介:

Swift中的属性分为存储属性和计算属性,存储属性就是Objective-C中的数据成员,计算属性不存储数据,但可以通过计算其他属性返回数据。

存储属性可以存储数据,分为常量属性(用关键字let定义)和变量属性(用关键字var定义)。

存储属性概念:

我们在前面曾用到过属性,Employee类和Department结构体。它们的类图如下,Employee的部门属性deptDepartment之间进行了关联。

  wKioL1bWSwKBI-HhAAecJSSdqZg862.jpg

我们可以在定义存储属性时指定默认值,示例代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class  Employee {
     let no: Int =  0
     var name: String =  ""
     var job: String?
     var salary: Double =  0
     var dept: Department?
}
  
struct Department {
     let no: Int =  0
     var name: String =  ""
}
  
let emp = Employee()
emp.no =  100                     //编译错误    :修改常量属性,程序会发生编译错误
  
let dept = Department()
dept.name = "SALES"            //编译错误:dept是值类型,值类型不能修改,即便它的属性name是变量属性,也不能修改
  
let emp1 = Employee()
emp1.name =   "Tony"


 


本文转自 tony关东升 51CTO博客,原文链接:http://blog.51cto.com/tonyguan/1746594,如需转载请自行联系原作者

目录
打赏
0
0
0
0
265
分享
相关文章
|
4月前
|
Swift 属性
10月更文挑战第29天
51 2
|
9月前
|
Swift开发——属性检查器
Swift中的属性检查器(willSet, didSet)允许在设置存储属性值前后执行代码。在类`Circle`中,属性`radius`使用属性观察器:willSet在赋值前检查值,若值为负则打印警告;didSet在赋值后比较新旧值,根据变化输出相应信息。在实例`c`中,`radius`从-5变为0时,输出“Input value is negative.”和“The circle gets smaller.”;从0变为10时,输出“Input value is normal.”和“The circle gets larger.”。
246 4
Swift开发——属性检查器
Swift开发——存储属性与计算属性
Swift推荐使用结构体进行开发,结构体支持属性和方法,且作为值类型。结构体属性包括存储属性(如radius)和计算属性(如r),计算属性不存储值,类似方法。结构体用`struct`定义,命名遵循大驼峰规则。实例名遵循小驼峰规则。属性可在结构体中任意位置定义,静态属性用`static`。存储属性可为`lazy`实现懒加载。结构体实例通过`.`访问属性和方法,静态属性和方法用`结构体名.`访问。计算属性可读写,可通过`get`和`set`定义。程序段1展示了结构体Point和Circle的属性和方法,包括私有属性、只读计算属性、可读写计算属性及`mutating`方法。
68 0
Swift开发——存储属性与计算属性
【Swift开发专栏】Swift中的属性观察者与KVO
【4月更文挑战第30天】Swift编程语言支持属性观察者(`willSet`和`didSet`)和键值观察(KVO)来响应属性变化。属性观察者在设置前(`willSet`)和设置后(`didSet`)执行代码,可用于数据绑定。KVO是Cocoa/Cocoa Touch中的机制,需`NSObject`子类和`@objc dynamic`属性配合使用。注意在观察者销毁前移除观察,以避免内存问题。示例展示了属性观察者实现简单数据绑定。
154 1
|
10月前
|
【Swift专题】聊聊Swift中的属性
属性是面向对象语言中非常基础的语法特性,我们讲属性,实际上就是讲与类本身或类实例关联的数据。在面向对象的语言中,类作为重要的数据结构会封装数据与函数,类中的函数我们通常称其为方法,而数据则就是属性。
117 1
Swift属性包装器@propertyWrapper
Swift属性包装器@propertyWrapper
170 0
Swift实用小册09:存储属性、计算属性及属性观察器的使用
Swift实用小册09:存储属性、计算属性及属性观察器的使用
300 0
Swift实用小册09:存储属性、计算属性及属性观察器的使用
Swift5.0 - day4-闭包、属性、方法、下标
Swift5.0 - day4-闭包、属性、方法、下标
352 0
Swift5.0 - day4-闭包、属性、方法、下标
Swift5.1——计算属性
Swift5.1——计算属性
167 0
Swift5.1——计算属性
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等