语法 1 2 3 4 5 6 struct nameStruct { Definition 1 Definition 2 …… Definition N }
实例 1 2 3 4 5 struct MarkStruct { var mark1: Int var mark2: Int var mark3: Int }
我们可以通过结构体名来访问结构体成员。 结构体实例化使用 let 关键字:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 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) " )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 import Cocoastruct MarksStruct { var mark: Int init (mark : Int ) { self .mark = mark } } var aStruct = MarksStruct (mark: 98 )var bStruct = aStruct bStruct.mark = 97 print (aStruct.mark) print (bStruct.mark)
结构体应用 当符合一条或多条以下条件时,请考虑构建结构体:
结构体的主要目的是用来封装少量相关简单数据值。
有理由预计一个结构体实例在赋值或传递时,封装的数据将会被拷贝而不是被引用。
任何在结构体中储存的值类型属性,也将会被拷贝,而不是被引用。
结构体不需要去继承另一个已存在类型的属性或者行为。
结构体实例是通过值传递而不是通过引用传递。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 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)