我有这些定义在我的函数中的工作
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的结构,如下所示。
原文链接:https://www.f2er.com/swift/321470.htmlstruct MyClassConstants{ static let testStr = "test" static let testStrLength = countElements(testStr) static let arrayOfTests: [String] = ["foo","bar",testStr] }
这样,你的常量将在一个声明的结构中作为范围,而不是全局浮动。
更新
我添加了一个静态数组常量,响应一个评论询问静态数组初始化。请参见“Swift编程语言”中的Array Literals。
请注意,字符串常量和字符串常量都可以用于初始化数组。但是,由于数组类型是已知的,整数常量testStrLength不能在数组初始化器中使用。