定义
/// 这里我定义了一个结构体类型
/// 结构体类型是一个新的Siwft类型 (命名类似于 Int Double)
/// 用来描述一个人的所带属性 name = "" age = 0
struct PersonStruct {
var name = " "
var age = 0
}
/// 接下来我定义了一个类
/// 其中包含PersonStruct结构体类型
class Person{
var personstruct = PersonStruct()
var habbit = " "
}
实例化
/// 其中PersonStruct 和Person定义了抽象的PersonStruct,Person,接下来我们进行实例化
/// 结构体和类都使用构造器语法来生成新的实例,在结构体名和类名后加()
let personStruct = PersonStruct()
let person = Person()
属性访问
/// 属性访问
print("The PersonStruct Name is \(personStruct.name)")
/// 属性赋值操作
/// 可以直接访问结构体的子属性
person.personstruct.name = "summmerxx"
person.habbit = "love coding"
print("person->personstruct->name is \(person.personstruct.name) habbit is \(person.habbit)")
结构体赋值的例子
let obj = PersonStruct(name: "summerxx2",age: 18)
var obj1 = obj
/// 把obj1.name 修改为暖暖
obj1.name = "暖暖"
/// 接下来我们来看看
print("obj name is \(obj.name)") // summerxx2
print("obj1 name is \(obj1.name)") // 暖暖
/// 在将 obj 赋予给 obj1 的时候,实际上是将 obj 中所存储的值(values)进行拷贝. 只是单纯的进行值拷贝
再看看类
/// 类的操作
let personObj = Person()
personObj.habbit = "Beatiful things"
let personObj1 = personObj
personObj1.habbit = "Not habbit"
print("personObj habbit is \(personObj.habbit)") // Not habbit
/// 在将 personObj 赋予给 personObj1 的时候,实际上是将 personObj 存储的地址值进行拷贝.
接下来看看使用场景,究竟什么情况下使用结构体,在Objective-C开发的时候,用于数据存储我一般都是使用类,也就是MVC中的Model
总结: Siwft 结构体简单学习就到这,待补充~