1. 结构体的定义与输出
struct 结构体名称 {
statement
......
}
当要输出结构体中某个量的值, 可以通过 "结构体名称.量的名称" 来实现
当用结构体给一个常量或者变量赋值的时候, 相当于给这个结构体起一个别名
结构体中任意类型的值在传递的时候总是被拷贝
例如, 现在想要创造一个动物园管理系统 :
struct sZoo {
let zooName = "BeijingZoo"
var name : String
}
let animal = sZoo(name : "Tiger") //对结构体的实例化
print(animal.name) //结果 : Tiger
var newAnimal = sZoo(name : "Tiger")
newAnimal.name = "Elephant" //对结构体中属性的修改
print(newAnimal.name) //结果 : Elephant
2. 结构体的方法
和 Swift 中的枚举一样, 同样可以给结构体添加方法从而实现拓展结构体的功能
Swift 中, 结构体中的方法无法更改结构体中某一个量的数值, 包括变量
struct sZoo {
let zooName = "BeijingZoo"
var animalName1 = "Tiger"
var animalName2 = "Elephant"
func printZooName() {
print(zooName)
}
func sayHelloToAnimalName1() {
print("Hello, \(animalName1)!")
}
}
let zoo = sZoo()
zoo.printZooName() //结果 : BeijingZoo
zoo.sayHelloToAnimalName1() //结果 : Hello, Tiger!
3. 结构体的下标
一个结构体可以为其定义多个下标, 并且下标会基于传入的索引值的类型, 选择合适的下标重载使用
下标没有限制单个维度, 可以使用多个输入形式参数来定义下标, 满足自定义类型的需求
可以使用关键字 subscript 来定义下标, 并且指定一个或者多个输入形式参数和返回类型
struct MySubscript {
var number : Int
subscript(num : Int) -> Int {
return number * num
}
}
let index = MySubscript(number : 4)
print(index[10]) //结果 : 40
自創文章, 原著 : Jonny, 如若需要轉發, 在已經授權的情況下請註明出處 :《Swift 第七课 : 结构体》https://jonny.vip/2017/08/22/swift-%e7%ac%ac%e4%b8%83%e8%af%be-%e7%bb%93%e6%9e%84%e4%bd%93/
Leave a Reply