语言设计 – 为什么在swift中没有类的存储类型属性?

语言设计 – 为什么在swift中没有类的存储类型属性?,第1张

概述通过Swift编程语言,我惊讶地发现,与结构和枚举不同,类不支持存储类型属性。 这是其他OO语言的一个共同特征,所以我认为有一个很好的理由,他们决定不允许它。但我不能猜到这是什么原因,特别是因为结构(和枚举)有它们。 这只是说它是早期的Swift,它只是还没有实现呢?还是有更深的理由背后的语言设计决策? BTW,“存储类型属性”是Swift术语。在其他语言中,这些可能被称为类变量。示例代码: st 通过Swift编程语言,我惊讶地发现,与结构和枚举不同,类不支持存储类型属性。

这是其他OO语言的一个共同特征,所以我认为有一个很好的理由,他们决定不允许它。但我不能猜到这是什么原因,特别是因为结构(和枚举)有它们。

这只是说它是早期的Swift,它只是还没有实现呢?还是有更深的理由背后的语言设计决策?

BTW,“存储类型属性”是Swift术语。在其他语言中,这些可能被称为类变量。示例代码:

struct FooStruct {    static var storedTypeProp = "struct stored property is OK"}FooStruct.storedTypeProp // evaluates to "struct stored property is OK"class FooClass {    class var computedClassprop: String { return "computed class property is OK" }    // class var storedClassprop = "class property not OK" // this won't compile}FooClass.computedClassprop // evaluates to "computed class property is OK"

编辑:

我现在意识到这个限制是微不足道的工作,例如,通过使用具有存储属性的嵌套结构:

class Foo {    struct Stored {        static var prop1 = "a stored prop"    }}Foo.Stored.prop1 // evaluates to "a stored prop"Foo.Stored.prop1 = "new value"Foo.Stored.prop1 // evaluates to "new value"

这似乎排除了他们的一些深刻的无法解释的语言设计的原因这个限制。

考虑到Martin Gordon提到的编译器消息的措辞,我必须得出结论,这只是一些(次要的)遗漏。

编译器错误是“类变量尚不支持”,所以似乎他们只是还没有实现它。 总结

以上是内存溢出为你收集整理的语言设计 – 为什么在swift中没有类的存储类型属性?全部内容,希望文章能够帮你解决语言设计 – 为什么在swift中没有类的存储类型属性?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1058054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存