gpt4 book ai didi

swift - 如何在 swift 类中定义静态常量

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

我的函数中有这些定义是有效的

class MyClass {
func myFunc() {
let testStr = "test"
let testStrLen = countElements(testStr)
}
}

但是,如果我将“testStr”和“testStrLen”移动到类级别,它将无法编译。它说'MyClass.Type 没有名为'testStr'的成员。

class MyClass {
let testStr = "test"
let testStrLen = countElements(testStr)

func myFunc() {

}
}

我该如何解决这个问题?我不想每次都计算一个常量“测试”的长度而付出代价。

根据我对下面评论的理解,我需要这样做:

class MyClass {
let testStr = "test"
let testStrLen = countElements("test")

func myFunc() {

}
}

有没有一种方法我不需要输入/输入“测试”两次?谢谢。

最佳答案

也许在 Swift 中为类声明常量的一个很好的习惯用法是只使用一个名为 MyClassConstants 的结构,如下所示。

struct MyClassConstants{
static let testStr = "test"
static let testStrLength = countElements(testStr)

static let arrayOfTests: [String] = ["foo", "bar", testStr]
}

通过这种方式,您的常量将在已声明的构造中限定范围,而不是在全局范围内 float 。

更新

我添加了一个静态数组常量,以响应询问静态数组初始化的评论。参见 Array Literals在“The Swift Programming Language”中。

请注意,字符串文字和字符串常量都可用于初始化数组。但是,由于数组类型是已知的,因此整数常量 testStrLength 不能在数组初始值设定项中使用。

关于swift - 如何在 swift 类中定义静态常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25918628/

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