时间:2021-05-19
Swift 结构体是构建代码所用的一种通用且灵活的构造体。
我们可以为结构体定义属性(常量、变量)和添加方法,从而扩展结构体的功能。
与 C 和 Objective C 不同的是:
结构体总是通过被复制的方式在代码中传递,因此它的值是不可修改的。
语法
我们通过关键字 struct 来定义结构体:
struct nameStruct { Definition 1 Definition 2 …… Definition N}实例
我们定义一个名为 MarkStruct 的结构体 ,结构体的属性为学生三个科目的分数,数据类型为 Int:
struct MarkStruct{ var mark1: Int var mark2: Int var mark3: Int}我们可以通过结构体名来访问结构体成员。
结构体实例化使用 let 关键字:
import Cocoastruct studentMarks { var mark1 = 100 var mark2 = 78 var mark3 = 98}let marks = studentMarks()print("Mark1 是 \(marks.mark1)")print("Mark2 是 \(marks.mark2)")print("Mark3 是 \(marks.mark3)")以上程序执行输出结果为:
Mark1 是 100
Mark2 是 78
Mark3 是 98
实例中,我们通过结构体名 'studentMarks' 访问学生的成绩。结构体成员初始化为mark1, mark2, mark3,数据类型为整型。
然后我们通过使用 let 关键字将结构体 studentMarks() 实例化并传递给 marks。
最后我们就通过 . 号来访问结构体成员的值。
以下实例化通过结构体实例化时传值并克隆一个结构体:
import Cocoastruct MarksStruct { var mark: Int init(mark: Int) { self.mark = mark }}var aStruct = MarksStruct(mark: 98)var bStruct = aStruct // aStruct 和 bStruct 是使用相同值的结构体!bStruct.mark = 97print(aStruct.mark) // 98print(bStruct.mark) // 97以上程序执行输出结果为:
98
97
结构体应用
在你的代码中,你可以使用结构体来定义你的自定义数据类型。
结构体实例总是通过值传递来定义你的自定义数据类型。
按照通用的准则,当符合一条或多条以下条件时,请考虑构建结构体:
举例来说,以下情境中适合使用结构体:
结构体实例是通过值传递而不是通过引用传递。
import Cocoastruct markStruct{ var mark1: Int var mark2: Int var mark3: Int init(mark1: Int, mark2: Int, mark3: Int){ self.mark1 = mark1 self.mark2 = mark2 self.mark3 = mark3 }}print("优异成绩:")var marks = markStruct(mark1: 98, mark2: 96, mark3:100)print(marks.mark1)print(marks.mark2)print(marks.mark3)print("糟糕成绩:")var fail = markStruct(mark1: 34, mark2: 42, mark3: 13)print(fail.mark1)print(fail.mark2)print(fail.mark3)以上程序执行输出结果为:
优异成绩:
98
96
100
糟糕成绩:
34
42
13
以上实例中我们定义了结构体 markStruct,三个成员属性:mark1, mark2 和 mark3。结构体内使用成员属性使用 self 关键字。
从实例中我们可以很好的理解到结构体实例是通过值传递的。
以上就是详解Swift 结构体的详细内容,更多关于Swift 结构体的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、引言Swift中的类与结构体十分相似,和Objective-C不同的事,Swift中的结构体不仅可以定义属性,也可以像类一样为其定义方法。Swift中的类与
概述相对Objective-C,Swift使用结构体Struct的比例大大增加了,其中Int,Bool,以及String,Array等底层全部使用Struct来
前言和其他语言不同的是,Swift不需要为自定义的类和结构体创建接口和实现文件。只需要创建单一文件用来创建类和结构体,其他的外部接口的代码系统会自动生成。下面这
Swift里面的类型分为两种:●值类型(ValueTypes):每个实例都保留了一分独有的数据拷贝,一般以结构体(struct)、枚举(enum)或者元组(tu
Swift开发之懒加载的实例详解///Adisplaylinkthatkeepscallingthe`updateFrame`methodoneveryscre