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

前端之家收集整理的这篇文章主要介绍了如何在swift中的类中定义静态常量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这些定义在我的函数中的工作
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]
}

这样,你的常量将在一个声明的结构中作为范围,而不是全局浮动。

更新

添加了一个静态数组常量,响应一个评论询问静态数组初始化。请参见“Swift编程语言”中的Array Literals

请注意,字符串常量和字符串常量都可以用于初始化数组。但是,由于数组类型是已知的,整数常量testStrLength不能在数组初始化器中使用。

原文链接:https://www.f2er.com/swift/321470.html

猜你在找的Swift相关文章