Swift 结构体简单学习

前端之家收集整理的这篇文章主要介绍了Swift 结构体简单学习前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

定义

/// 这里我定义了一个结构体类型
    /// 结构体类型是一个新的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 结构体简单学习就到这,待补充~

猜你在找的Swift相关文章