enum Toward1{
case Forward
case Back
case Left
}
enum Toward2{
case Forward,Back,Left
}
枚举的值
enum Toward1:Int{
case Forward = 1// 枚举值进行赋值case Back
case Left
}
print(Toward1.Forward.hashValue) // 0 枚举的原始值 print(Toward1.Forward.rawValue) // 1枚举的赋值print(Toward1.Back.rawValue) // 2
如果枚举没有进行赋值,则枚举只有原始值,从0开始
如果枚举赋值类型为Int类型,则会逐渐递增
如果枚举值赋值类型为String,如果没有进行赋值,则赋值为case值
enum Toward3:String{
case Forward
case Back = "second"case Left
}
print(Toward3.Forward.hashValue) // 0print(Toward3.Forward.rawValue) // Forward print(Toward3.Back.rawValue) // secondprint(Toward3.Left.rawValue) // Left
枚举的使用
结构体
结构体的声明
结构体的声明需要struct关键字
在进行结构体声明时需要声明属性类型,如果不声明属性类型,则需要赋初值,便于编译器进行类型判定
结构体的构造方法
struct Student{
var name:Stringvar sex:Stringvar age:Int
}
struct Student1{
var name = "LI"var sex = "GIRL"var age = 20
}
空参构造方法
// 如果结构体声明时没有初始值,则不能用空参构造方法var wang = Student1()
全参构造方法
var wang = Student(name: "wang", sex: "man", age: 20)
结构体的赋值和取值
取值可以使用点语法进行取值
struct Student1{
var name = "LI"var sex = "GIRL"var age = 20
}
var wang1 = Student1(name: "wang", sex: "man", age: 20)
print(wang1.name) //wang
wang1.name = "Li"
结构体赋值
wang1.name = "Li"print(wang1.name) // Li
结构体的嵌套
对于嵌套的结构体进行访问,访问内层结构体属性可以采用多层点语法进行访问
struct Teacher{
var name = "Li"var age = 24
}
struct Student{
var name:String
var age:Int
var teacher:Teacher
}
var Lilei = Student(name: "lilei", age: 20, teacher: Teacher(name: "wang", age: 30))
print(Lilei.teacher.name) //wang