swift 中类(class)和结构体(struct)区别
程序员文章站
2024-02-20 16:10:52
...
类(class)
引用类型:将一个对象赋值给另一个对象时,系统不会对此对象进行拷贝,而会将指向这个对象的指针赋值给另一个对象,当修改其中一个对象的值时,另一个对象的值会随之改变。
结构体(struct)
值类型:将一个对象赋值给另一个对象时,会对此对象进行拷贝,复制出一份副本给另一个对象,在修改其中一个对象的值时,不影响另外一个对象。
不同点:1.类属于引用类型,结构体属于值类型
2.类允许被继承,结构体不允许被继承
3.类中的每一个成员变量都必须被初始化,否则编译器会报错,而结构体不需要,编译器会自动帮我们生成init函数,给变量赋一个默认值
举个例子:
import UIKit
struct StructName {
var name:String?
}
class ClassName {
var name:String?
}
let stru:StructName = StructName()
var structArr:[StructName] = [stru]
for var temStruct in structArr {
temStruct.name = "name"
}
for temStruct in structArr {
print(temStruct.name) // 打印:nil
}
let clase:ClassName = ClassName()
var claseArr:[ClassName] = [clase]
for temClase in claseArr {
temClase.name = "name"
}
for temClase in claseArr {
print(temClase.name ) //打印: Optional("name")
}
上一篇: ASP.NET列出数据库活跃链接的方法
下一篇: find和findIndex方法