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 struct
var person1 = Person()
在这里,我们创建了一个实例,方法是将结构 Person
的名称后跟一个默认的初始化 ()
现在,我们可以使用 person1
实例访问和修改结构属性。例如,
// modify the name property
person1.name = "Swift"
// access the age property
person1.age
这里,我们使用了点符号 .
来访问 struct
属性。
实例:Swift 访问结构属性
// define a structure
struct Person {
// define two properties
var name = ""
var age = 0
}
// create instance of Person
var person1 = Person()
// access properties and assign new values
person1.age = 21
person1.name = "Rick"
print("Name: \(person1.name) and Age: \( person1.age) ")
结果如下:
Name: Rick and Age: 21
在上面的例子中,我们用两个属性定义了名为 Person
的结构:name
和 age
。
我们还创建了结构 Person
的实例 person1
。
最后,我们使用 .notation
访问和修改了实例的属性。
实例:创建结构的多个实例
// define a structure
struct Student {
// define a property
var studentID = 0
}
// instance of Person
var student1 = Student()
// access properties and assign new values
student1.studentID = 101
print("Student ID: \(student1.studentID)")
// another instance of Person
var student2 = Student()
// access properties and assign new values
student2.studentID = 102
print("Student ID: \(student2.studentID)")
结果如下:
Student ID: 101
Student 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 values
var name: String
var age: Int
}
// instance of Person with memberwise initializer
var 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 struct
func applyBrake(){
print("Applying Hydraulic Brakes")
}
}
// create an instance
var car1 = Car()
car1.gear = 5
print("Gear Number: \(car1.gear)")
// access method
car1.applyBrake()
结果如下:
Applying Hydraulic Brakes
在上面的实例中,我们在 Car
结构中定义了名为 applyBraking()
的方法。注意方法的访问,
car1.applyBrake()
这里,我们使用了 .notation
来访问在结构中定义的方法。最后,执行方法中的语句。