当前位置: 首页 > 面试题库 >

快速语言的结构与类

夏侯腾
2023-03-14
问题内容

苹果公司的书“结构和类之间最重要的区别之一是,结构在代码中传递时总是被复制,而类是通过引用传递的。”

谁能帮助我了解这意味着什么?在我看来,类和结构似乎是相同的。


问题答案:

这是带有的示例class。请注意,更改名称后,如何更新两个变量引用的实例。Bob现在SueBob曾经被引用过的任何地方。

class SomeClass {
    var name: String
    init(name: String) {
        self.name = name
    }
}

var aClass = SomeClass(name: "Bob")
var bClass = aClass // aClass and bClass now reference the same instance!
bClass.name = "Sue"

println(aClass.name) // "Sue"
println(bClass.name) // "Sue"

现在,使用a struct可以看到复制了值,并且每个变量都保留了自己的一组值。当我们将名称设置为时,in
SueBob结构aStruct不会更改。

struct SomeStruct {
    var name: String
    init(name: String) {
        self.name = name
    }
}

var aStruct = SomeStruct(name: "Bob")
var bStruct = aStruct // aStruct and bStruct are two structs with the same value!
bStruct.name = "Sue"

println(aStruct.name) // "Bob"
println(bStruct.name) // "Sue"

因此,对于表示有状态的复杂实体,a
class很棒。但是对于仅是度量值或相关数据位的值,struct则更有意义,因此您可以轻松地对其进行复制和计算,或者修改值而不必担心副作用。



 类似资料:
  • 来自Apple book“结构和类之间最重要的区别之一是,当结构在代码中传递时,它们总是被复制,而类是通过引用传递的。” 有谁能帮我明白那是什么意思吗?对我来说,类和结构似乎是一样的。

  • 问题内容: 现在我知道苹果不推荐这样做。 通常,您不应在应用程序内更改iOS系统语言(通过使用AppleLanguages首选项键)。这违反了在设置应用程序中切换语言的基本iOS用户模型,并且还使用了未记录的首选项键,这意味着将来某个时候,键名可能会更改,这会破坏您的应用程序。 但是,这是一个可以随时更改语言的应用程序,请相信我。我也知道有人问过这个问题:在运行iOS时以编程方式实时更改语言。但是

  • 问题内容: 我们如何用快速编程语言定义以下内容: 空值 零 零 [NSNull null] 换句话说,这些目标c项中的每一个的快速等效项是多少。此外,还想知道是否存在针对非目标c类型(如结构和枚举)的任何特定用例。提前致谢。 问题答案: 关于等效项: 在Swift中没有等效功能。 在Swift中也称为 在Swift中没有等效功能 可以在Swift中作为NSNull()访问 注意:这些是我基于阅读和

  • 魔方加密的 PHP 规范支持标准 PHP 规范中常用的语法结构。 echo 语法为: echo statement; echo statement_1[, statement_2[, ...]]; exit 语法为: exit; exit(); exit(statement); 请注意,exit(statement); 不论表达式的值是整数还是字符串,总会输出后才终止脚本,这与标准

  • Java 是一种高级的编程语言,它最初是由 Sun 公司开发并于 1995 年公开发布的。Java 可以在不同的平台上运行,例如:Windows,Mac OS 和不同版本的 Unix。本指南将让你对 Java 有一个彻底的认识与了解。

  • 本文向大家介绍详解Swift语言中的类与结构体,包括了详解Swift语言中的类与结构体的使用技巧和注意事项,需要的朋友参考一下 类 在 Swift 中类是建立灵活的构建块。类似于常量,变量和函数,用户可以定义的类的属性和方法。Swift给我们提供了声明类,而无需用户创建接口和实现文件的功能。Swift 允许我们创建类作为单个文件和外部接口,将默认在类一次初始化来创建。 使用类的好处: 继承获得一个