摘要訊息 : 學習 Swift 中的結構體.
0. 前言
本文于 2022 年 3 月 17 日进行一次更新和修正. 修正之后本文已经归档, 不再享受更新.
1. 结构体的定义
struct 结构体名称 {
// let cnt1 = some_value
// var var2
// ...
// func function_name(parameter_list) {...}
}
Swift 结构体中任意类型的值在传递的时候总是被拷贝. 例如, 现在想要创造一个动物园管理系统 :
struct zoo {
let zoo_name = "BeijingZoo"
var name : String
}
let animal = zoo(name : "Tiger")
print(animal.name) // 结果 : Tiger
var new_animal = zoo(name : "Tiger")
new_animal.name = "Elephant"
print(new_animal.name) // 结果 : Elephant
2. 结构体的方法
和 Swift 中的枚举一样, 同样可以给结构体添加方法从而实现拓展结构体的功能. Swift 中, 结构体中的方法无法更改结构体中某一个量的数值, 包括变量 :
struct zoo {
let zoo_name = "BeijingZoo"
var animal_name1 = "Tiger"
var animal_name2 = "Elephant"
func print_zoo_name() {
print(zoo_name)
}
func say_hello_to_animal_1() {
print("Hello, \(animal_name1)!")
}
}
let z = zoo()
z.print_zoo_name() // 结果 : BeijingZoo
z.say_hello_to_animal_1() // 结果 : Hello, Tiger!
3. 结构体的下标
一个结构体可以为其定义多个下标, 并且下标会基于传入的索引值的类型, 选择合适的下标重载使用. 下标没有限制单个维度, 可以使用多个输入形式参数来定义下标, 满足自定义类型的需求. 可以使用关键字 subscript
来定义下标, 并且指定一个或者多个输入形式参数和返回类型 :
struct my_subscript {
var number : Int
subscript(num : Int) -> Int {
return number * num
}
}
let index = my_subscript(num : 4)
print(index[10]) // 结果 : 40
自創文章, 原著 : Jonny. 如若閣下需要轉發, 在已經授權的情況下請註明本文出處 :