Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在类上定义存储的类型属性_Swift - Fatal编程技术网

Swift 在类上定义存储的类型属性

Swift 在类上定义存储的类型属性,swift,Swift,我是Swift新手,在阅读“Swift编程语言”参考书(关于语言指南>属性>类型属性)中的这一段时,我感到困惑: 对于值类型(即结构和枚举),可以定义存储的和计算的类型属性。对于类,只能定义计算的类型属性 摘自:苹果公司《Swift编程语言》。iBooks 但在此之后的几页中,可以找到以下代码片段: ... class SomeClass { static var storedTypeProperty = "Some value." static var computedType

我是Swift新手,在阅读“Swift编程语言”参考书(关于语言指南>属性>类型属性)中的这一段时,我感到困惑:

对于值类型(即结构和枚举),可以定义存储的和计算的类型属性。对于类,只能定义计算的类型属性

摘自:苹果公司《Swift编程语言》。iBooks

但在此之后的几页中,可以找到以下代码片段:

...
class SomeClass {
    static var storedTypeProperty = "Some value."
    static var computedTypeProperty: Int {
        // return an Int value here
    }
    class var overrideableComputedTypeProperty: Int {
        // return an Int value here
    }
}
...
在类上下文中明确定义了存储类型属性,这显然否定了前面所述的内容

那么,这是一个文档错误还是我遗漏了什么

编辑1

我觉得这不是我的复制品。我不是在问为什么没有实现这个功能,因为显然它目前已经实现了(因为编译器不会将它标识为错误)。我要问的是文档是否过时或者我的解释是否不正确

编辑2


这一问题得到了解决。显然文件已经过时了。这个功能是在Swift 1.2上添加的,我相信文档的意思是(以一种相当混乱的方式)您不能有
class
存储的变量(而您仍然可以有
static
存储的变量)

总结一下

class Foo {
  static var bar: Int {      // ok (computed static type variable)
    return 2
  }
  static var foo = ""        // ok (stored static type variable)
  class var foobar: Int {    // ok (computed class type variable)
    return 2
  }
  class var baz = ""         // nope (stored class type variable)
}

我认为苹果没有更新这本书。如果我错了,请纠正我。我是个古玩,自己检查了一下。这段代码运行得很好:
类测试{static var someInt=0}打印(Test.someInt)
我不确定我是否正确理解了您的问题。这就是你要找的吗?@GabrielHuff:你解释了为什么你认为它不是复制品。但是,除非我误解了你的问题(上次编辑之后),否则这是重复的。好吧,你是对的。第二个问题涉及同样的问题。显然,文档已经过时。
类型属性语法的最后一段让我得出了相同的结论。
静态
只是
类最终
的隐式类型别名,但这在这里不起作用。在这里阅读:这是有道理的。但我认为这更可能是一个错误,因为
静态
的概念仅在下一页介绍。另外,通过阅读这个问题(人们认为我重复了这个问题),我假设在早期版本中,不可能在类中声明存储的类型变量