美文网首页
struct 和 class

struct 和 class

作者: Vergil_wj | 来源:发表于2017-11-30 13:55 被阅读17次

基本一样,都可以有方法,有变量,非常相似.

主要有两个区别:

struct 没有继承

struct是值类型,class是引用类型

值类型:
当你把它作为参数传入函数,把它放进数组,甚至赋值给另一个变量,它都会被拷贝.数组,Int,String,Dictionary都是结构体,他们在代码之间传递时候总是会被复制.那效率是不是很低?不,因为Swift在把这些结构体四处传递的时候,它不会把所有这些的每个比特都复制,它会在有人修改了它的值时候才进行实际拷贝.这叫做copy-on-write.

引用类型:
他们被存储在堆中,你保留指向它的指针,当你传递它的时候,你不会把对象四处传递,你传递的是指针.所以你可能有很多代码都拥有指向同一个对象的指针.

相关文章

  • 数据库

    struct & class C++中的struct是对C中的struct的扩充。和class一样,struct有...

  • Lesson2

    Class 和Struct区别 Class的对象是引用类型,Struct的对象是值类型 Struct没有继承

  • OC中的class和meta-class对象的结构分析

    class和meta-class对象的类型都是 struct objc_class 结构体 struct objc...

  • 底层原理:class和meta-class的结构

    class和meta-class对象的类型都是 struct objc_class 结构体 struct objc...

  • C# Struct

    Struct 和 class 差不多,但有一些不同: struct是值类型, class是引用类型 struct不...

  • struct 和class

    Swift 浅谈Struct与Class - 贝克的飞机 - 博客园

  • struct 和 class

    基本一样,都可以有方法,有变量,非常相似. 主要有两个区别: struct 没有继承 struct是值类型,cla...

  • struct 和 class

    值类型 VS 引用类型 值类型和引用类型的核心不同就是数据和数据的存储位置。我们用局部变量、参数、属性和全局变量来...

  • Swift 中 class 和 struct

    struct能继承么? 为什么用struct不用class? 为什么struct比class安全? 值类型和引用类...

  • C++: 类(上)

    简介1、C++中可以使用struct、class来定义一个类2、 struct和class的区别: struct修...

网友评论

      本文标题:struct 和 class

      本文链接:https://www.haomeiwen.com/subject/ppcvbxtx.html