Swift 结构
在本教程中,您将了解 Swift 结构,还将学习借助实例创建结构实例。
在 Swift 中,结构用于存储不同数据类型的变量。例如,
假设我们想存储一个人的姓名和年龄。我们可以创建两个变量:姓名、年龄和存储值。
然而,假设我们想存储多个人的相同信息。
在这种情况下,为个人创建变量可能是一项乏味的任务。为了克服这个问题,我们可以创建一个存储名称和年龄的结构。现在,这个结构可以用于每个人。
定义 Swift 结构
以下是在 Swift 中定义结构的语法:
struct StructureName {// structure definition}
这里,
struct- 用于定义结构的关键字StructName— 结构的名称
让我们看一个例子,
struct Person {var name = ""var age = 0}
这里,我们定义了一个名为 Person 的结构。在花括号 {} 内,结构包含两个变量 name 和 age,分别为 "" 和 0。
结构实例
结构定义只是一个蓝图。要使用结构,我们需要创建它的实例。例如,
struct Person {var name = " "var age = 0}// create instance of structvar person1 = Person()
在这里,我们创建了一个实例,方法是将结构 Person 的名称后跟一个默认的初始化 ()
现在,我们可以使用 person1 实例访问和修改结构属性。例如,
// modify the name propertyperson1.name = "Swift"// access the age propertyperson1.age
这里,我们使用了点符号 . 来访问 struct 属性。
实例:Swift 访问结构属性
// define a structurestruct Person {// define two propertiesvar name = ""var age = 0}// create instance of Personvar person1 = Person()// access properties and assign new valuesperson1.age = 21person1.name = "Rick"print("Name: \(person1.name) and Age: \( person1.age) ")
结果如下:
Name: Rick and Age: 21
在上面的例子中,我们用两个属性定义了名为 Person 的结构:name 和 age。
我们还创建了结构 Person 的实例 person1。
最后,我们使用 .notation 访问和修改了实例的属性。
实例:创建结构的多个实例
// define a structurestruct Student {// define a propertyvar studentID = 0}// instance of Personvar student1 = Student()// access properties and assign new valuesstudent1.studentID = 101print("Student ID: \(student1.studentID)")// another instance of Personvar student2 = Student()// access properties and assign new valuesstudent2.studentID = 102print("Student ID: \(student2.studentID)")
结果如下:
Student ID: 101Student ID: 102
在上面的实例中,我们创建了 Student 结构的两个实例 student1 和 student2
Swift 成员初始化
前面我们给结构属性指定了一个默认值。
struct Person {var name = ""}
我们已经使用默认初始化创建了一个实例。
var person1 = Person()
然而,如果我们不为 struct 属性指定默认值。
struct Person {var name: String}
我们在创建实例时传递值
var person1 = Person(name: "Kyle")
在这里,括号 () 内的值自动分配给结构的相应属性。这称为成员初始化。
实例:成员初始化
struct Person {// properties with no default valuesvar name: Stringvar age: Int}// instance of Person with memberwise initializervar person1 = Person(name: "Kyle", age: 19)print("Name: \(person1.name) and Age: \( person1.age)")
结果为:
Name: Kyle and Age: 19
在上面的实例中,我们为 Person 结构创建了实例 person1。
因为我们没有给属性赋予默认值,所以我们使用成员初始化来赋值。
Swift 结构内部的功能
我们还可以在 swift 结构中定义函数。在结构中定义的函数称为方法。
让我们看一个例子,
struct Car {var gear = 0// method inside structfunc applyBrake(){print("Applying Hydraulic Brakes")}}// create an instancevar car1 = Car()car1.gear = 5print("Gear Number: \(car1.gear)")// access methodcar1.applyBrake()
结果如下:
Applying Hydraulic Brakes
在上面的实例中,我们在 Car 结构中定义了名为 applyBraking() 的方法。注意方法的访问,
car1.applyBrake()
这里,我们使用了 .notation 来访问在结构中定义的方法。最后,执行方法中的语句。