gpt4 book ai didi

swift - 如果 "static"关键字用于在 swift 中定义常量/不可变,那么 "let"关键字有什么用?

转载 作者:IT王子 更新时间:2023-10-29 04:59:18 24 4
gpt4 key购买 nike

我对在 swift 中使用 static 关键字有点困惑。正如我们所知,swift 引入了 let 关键字来声明不可变对象(immutable对象)。就像声明一个 TableView 单元格的 id 一样,它很可能在其生命周期内不会改变。现在在某些结构声明中使用 static 关键字有什么用:

struct classConstants
{
static let test = "test"
static var totalCount = 0
}

let 关键字做同样的事情。在 Objective C 中,我们使用 static 来声明一些常量,例如

static NSString *cellIdentifier=@"cellId";

除了让我更好奇的是 static 关键字与 letvar 关键字的使用。谁能解释我在哪里使用这个静态关键字?更重要的是,我们真的需要 swift 中的 static 吗?

最佳答案

我会为你分解它们:

  • var : 用于创建变量
  • let : 用于创建常量
  • static :用于创建 type properties使用 letvar。这些在一个类的所有对象之间共享。

现在你可以组合得到想要的结果了:

  • static let key = "API_KEY" : 常量类型属性
  • static var cnt = 0 : 类型属性是一个变量
  • let id = 0 : 常量(只能赋值一次,但可以在运行时赋值)
  • var price = 0 : 变量

所以总结一下 var 并让定义可变性,同时静态和缺乏定义范围。您可能会使用 static var 来跟踪您创建的实例数量,而您可能只想使用 var 来获取不同对象的价格。希望这可以解决一些问题。

示例代码:

class MyClass{
static let typeProperty = "API_KEY"
static var instancesOfMyClass = 0
var price = 9.99
let id = 5

}

let obj = MyClass()
obj.price // 9.99
obj.id // 5

MyClass.typeProperty // "API_KEY"
MyClass.instancesOfMyClass // 0

关于swift - 如果 "static"关键字用于在 swift 中定义常量/不可变,那么 "let"关键字有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34574876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com