奇思妙想 · 2024年 5月 12日 0

Swfit结构体和类设计

7 次浏览

Swift语言的结构体和类的设计有着本质区别,不像C++,结构体struct和类class是等价词。

  • struct是值类型,class是引用类型。
    值类型意味着拷贝都是副本,而引用类型意味着是复制引用。
  • struct不能继承,class可以继承其它class。
  • struct默认可以构建一个初始化函数,但没有析构函数(资源自动释放),而class可以有构造函数和析构函数。
  • struct默认不能在实例方法中修改成员,必须用mutating指示可以修改,而class默认就可以修改。
  • 常量struct意味着不能修改任何成员,而常量class只是表明引用不可改,引用指向的内存内容可以改。
  • struct在有些时候意味着更轻量级,更适合于不涉及复杂成员和成员操作时使用。