Swift中 struct 和 class 的区别

2018-09-01  本文已影响4人  派大星的博客

类和结构体的相同点:

a、属性
b、方法
c、下标操作
d、构造器
e、扩展
f、协议


Structures and classes in Swift have many things in common. Both can:


类和结构体的不同点:

a、类具有:继承、析构、类型转换、引用计数
b、类和结构体在内存中的实现机制的不同:类存储在堆(heap)中,结构体存储在栈(stack)中
c、类是引用类型,而结构体是值类型


Classes have additional capabilities that structures don’t have:


如何选择:

a、默认情况下使用structures。
b、当您需要Objective-C互操作性时,请使用classes。
c 、当您需要控制建模数据的标识时,请使用classes。
d 、通过共享实现,使用structures和协议来采用行为。

Consider the following recommendations to help choose which option makes sense when adding a new data type to your app.

struct Student {
    //  MARK: - 属性
    var name: String
    var age: Int
    var classNum: String
    
    //  MARK: - 方法
    func descriptionStudent() {
        print("姓名:" + name + " 年龄:" + "\(age)" + " 班级号:" + classNum)
        // self.name = "alice"
    }
    
    mutating func modifyName(name: String){
        self.name = name
    }
}

var student1 = Student(name: "andy", age: 15, classNum: "0501")
student1.descriptionStudent()

// 输出:
// 姓名:Andy 年龄:15 班级号:0501
// 姓名:Bob 年龄:15 班级号:0501
上一篇 下一篇

猜你喜欢

热点阅读