美文网首页
390,swift中如果结构体的实例是let接受的,那这个结构体

390,swift中如果结构体的实例是let接受的,那这个结构体

作者: 枫叶1234 | 来源:发表于2020-12-28 07:06 被阅读0次

常量结构体的存储属性

如果创建了一个结构体的实例并将其赋值给一个常量,则无法修改该实例的任何属性,即使有属性被声明为变量也不行:

let rangeOfFourItems = FixedLengthRange(firstValue: 0, length: 4)
// 该区间表示整数0,1,2,3
rangeOfFourItems.firstValue = 6
// 尽管 firstValue 是个变量属性,这里还是会报错

因为 rangeOfFourItems 被声明成了常量(用let关键字),即使 firstValue 是一个变量属性,也无法再修改它了。

这种行为是由于结构体(struct)属于值类型。当值类型的实例被声明为常量的时候,它的所有属性也就成了常量。属于引用类型的类(class)则不一样。把一个引用类型的实例赋给一个常量后,仍然可以修改该实例的变量属性。

相关文章

  • 390,swift中如果结构体的实例是let接受的,那这个结构体

    常量结构体的存储属性 如果创建了一个结构体的实例并将其赋值给一个常量,则无法修改该实例的任何属性,即使有属性被声明...

  • 获取Class

    Class class本质是一个结构体的指针,结构体是objc_class,这个结构体中包含了: isa (实例-...

  • Nested Types

    为了表示更复杂的结构,swift中类、结构体和枚举可以使用内嵌类型 在结构体中嵌套枚举的复杂实例 //Neste...

  • Swift中的结构体、值类型和引用类型

    Swift中的结构体 Swift中的结构体是通过struct声明的 结构体的初始化 对比下面这段class的代码:...

  • Swift学习_基本语法之枚举&类&结构体

    1.枚举 类和结构体 在swift中类和结构体类似,可以把结构体理解成是一种轻量级的类,在swift中结构体不仅可...

  • Go语言结构体存在的坑

    如果使用结构体嵌套在实例化的时候必须先实例化外层的结构体,然后在实例化内层的结构体

  • Swift 结构体构造器

    Swift 中的结构体和类跟其它面向对象语言一样都有构造函数, 而OC是没有的 Swift 要求实例化一个结构体或...

  • Swift 类和对象 7.22

    Swift 类和对象 7.22 //与结构体struct的区别//1.用let定义的结构体变量,成员不能修改//2...

  • 第九章 类和结构体

    c++中,结构体是稍有不同的类,类能做的,结构体也可以; 而swift中,结构体与类有较大区别, 结构体与类的区别...

  • iOS - 关联对象 (Associated Object)

    在 Category 的探究 中我们看到 Category 的底层结构为结构体,这个结构体的成员有:实例方法列表、...

网友评论

      本文标题:390,swift中如果结构体的实例是let接受的,那这个结构体

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