枚举
1、具有基本的类型限制、别名使用、继承和遵守协议;
2、要给枚举中定义的所有的枚举值赋值,需要指定枚举的类型;
例:
//枚举中的元素被默认赋值成从0开始的整数,可以手动给每个枚举赋值,赋值后下边没有赋值的枚举会根据上边赋值的枚举值依次赋值
enum person :Int {
case man = 3
case woman
case children
}
//rawValue是取枚举的值
print(person.woman.rawValue)
输出的结果:4
3、Swift中枚举可以被指定为其他类型,比如String,如果枚举的类型为非Int类型,需要给每一个元素指定值,并且每一个值都必须是唯一的;
例:
enum person :String {
case man = "IsMan"
case woman = "IsWoman"
case children = "IsChildren"
}
//rawValue是取枚举的值
print(person.woman.rawValue)
输出的结果为:IsWoman
结构体
1、结构体和类在很大程度上是相似的。结构体是一个值拷贝的数据类型。主要用来定义数据模型。具有面向对象的特点,可以进行继承、遵守协议、构造函数等特点;
2、结构体可以用来保存某个事物的一组信息,例学生的属性(学号、姓名、年龄、班级)
struct User {
var name:String
var sex:Int
var phone:String
}
//初始化
var user = User(name: "pengran", sex: 0, phone: "123456")
// 赋值
//取值
print(user.name)
3、结构体可以嵌套
4、结构体是值拷贝类型,两个结构体实例变量之间进行赋值时,是对结构体所有内容的拷贝,对其中一个实例的属性进行修改后,不会影响另一个实例的内容