Swift3.0-枚举(enum)和结构体(struct)
/*
* 1、枚举 (enum关键字)
枚举是一种基本数据类型
*/
print("1、枚举")
enum Toward1:Int {
case Forward,Back,Left,Right //默认赋值从0开始,且依次+1
}
//rawValue将枚举值转换为原始值
print(Toward1.Left.rawValue)
enum Toward2:Int {
//如果指定类型为非Int类型,需要给每一个元素指定值,且每个值必须唯一
case Forward = 3
case Back
case Left = 6
case Right
}
//通过原始值得到枚举中对应元素
print(Toward2(rawValue:7) ?? Int())
/*
* 2、结构体 (!!!值拷贝类型;struct关键字)
*/
print("\n2、结构体")
struct Teacher{//老师结构体
var tId = 0
var tName = ""
}
struct ClassRoom{//班级结构体
var classId = 0
var className = ""
var classCharge = Teacher() //班主任
}
struct Student{//学生结构体
var classInfo = ClassRoom() //班级
var stuId = 0
var stuName = ""
var stuSex = true
}
var studet = Student()
studet.stuName = "明"
studet.classInfo.className = "终极一班"
studet.classInfo.classCharge.tName = "小月"
print("学生:\(studet.stuName),班级:\(studet.classInfo.className),班主任:\(studet.classInfo.classCharge.tName)")
//值拷贝类型:即两个结构体实例变量之间进行赋值时,是对结构体所有内容的拷贝。也就是说,对其中一个实例的属性进行修改后,不会影响另外一个实例内容
var stu2 = studet
stu2.stuName = "亮"
print(studet.stuName)
print(stu2.stuName)