通过Swift编程语言,我惊讶地发现,与结构和枚举不同,类不支持存储的类型属性。
这是其他OO语言的共同特征,因此我认为有充分的理由他们决定不允许它。但是我无法猜测出这个原因是什么,尤其是由于结构(和枚举)拥有它们。
难道仅仅是Swift的早期开发,还没有实现吗?还是在语言设计决策背后有更深层的原因?
顺便说一句,“存储类型属性”是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提到的编译器消息的措辞,我必须得出结论,这只是一个(次要的)遗漏之处。
编译器错误是“尚不支持类变量”,因此似乎他们尚未实现。
本文向大家介绍HTML5存储类型有什么区别?相关面试题,主要包含被问及HTML5存储类型有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 1)HTML5能够本地存储数据,在之前都是使用cookie使用的,HTML5提供了下面两种本地存储方案: 2) localStorage用于持久化的本地存储,数据永远不会过期,关闭浏览器也不会丢失。 3) sessionStorage 同一个会话的页面才能
问题内容: 以下代码使快速(3,3.1,4)编译器崩溃: 我可能天真地希望编译器将其推断为具有签名的Function Type ,之后,我可以这样称呼它: 我想我的问题是:显然,编译器应该执行除崩溃以外的其他操作,但是Swift目前应该支持这种语法吗? 问题答案: 如您所说,编译器永远不会崩溃;这确实是一个错误,已在此处提交。Swift团队成员Slava Pestov在其中说: 我们计划使MyPr
存储类用于定义容器集群中的不同存储类型。 存储类用于定义容器集群中的不同存储类型,目前仅支持本地存储和Ceph存储。容器集群默认提供本地存储的存储类。存储类用于配合持久卷(PV)动态的创建需要的存储资源。 存储类的详细介绍内容,请参考kubernets官方文档-存储类。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “容器/集群/存储类” 菜单项,进入存储类页面。 查看存储类 该功
第1章到第3章用标识符作为变量名。变量属性包括名称、类型、长度和值。本章用标识符作为用户自定义的函数名。实际上,程序中的每个标识符还有其他属性,包括存锗类(storageclass)、作用域(scope)和连接(linkage)。 C++提供了4个存储类说明符(storage class specifier):auto、register、extern和static。标识符的存储类说明符可以确定其存
存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。下面列出 C++ 程序中可用的存储类: auto register static extern mutable thread_local (C++11) 从 C++ 11 开始,auto 关键字不再是 C++ 存储类说明符,且 register 关键字被弃用。 auto 存储类 自 C++ 11
我正在尝试使用spring library for google cloud API: Spring-Cloud-gcp-starter-vision 但Spring应用程序上下文无法加载,出现错误: 引起原因:org.springframework.beans.factory.不满意依赖异常:错误创建在类路径资源[org/spring框架/云/gcp/自动配置/视觉/CloudVisionAut