前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >swift 中类(class)和结构体(struct)区别

swift 中类(class)和结构体(struct)区别

作者头像
菜菜不吃蔡
发布2020-08-28 10:11:47
1K0
发布2020-08-28 10:11:47
举报
文章被收录于专栏:编程语言编程语言

类(class)

引用类型:将一个对象赋值给另一个对象时,系统不会对此对象进行拷贝,而会将指向这个对象的指针赋值给另一个对象,当修改其中一个对象的值时,另一个对象的值会随之改变。

结构体(struct)

值类型:将一个对象赋值给另一个对象时,会对此对象进行拷贝,复制出一份副本给另一个对象,在修改其中一个对象的值时,不影响另外一个对象。

不同点:1.类属于引用类型,结构体属于值类型

2.类允许被继承,结构体不允许被继承

3.类中的每一个成员变量都必须被初始化,否则编译器会报错,而结构体不需要,编译器会自动帮我们生成init函数,给变量赋一个默认值

举个例子:

代码语言:javascript
复制
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")
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档