我想分享一些枚举属性。就像是:
enum State {
case started
case succeeded
case failed
}
enum ActionState {
include State // what could that be?
case cancelled
}
class Action {
var state: ActionState = .started
func set(state: State) {
self.state = state
}
func cancel() {
self.state = .cancelled
}
}
我知道了为什么ActionState
不能继承State
(因为状态cancelled
在中没有表示形式State
),但是我仍然想说“
ActionState就像具有更多选项的State,并且ActionState可以获取类型为State的输入,因为它们也属于输入ActionState”
我知道如何获得上述逻辑来复制案例ActionState
并在set
函数中进行切换。但我正在寻找更好的方法。
我知道枚举不能在Swift中继承,并且我已经阅读了swift-enum-
inheritance的协议答案。它没有解决“继承”或包括来自另一个枚举的案例的需要,仅解决了属性和变量。
enum State {
case started, succeeded, failed
}
enum ActionState {
case state(value: State), cancelled
}
class Action {
var state: ActionState = .state(value: .started)
func set(state: State) { self.state = .state(value: state) }
func cancel() { state = .cancelled }
}
不要忘记粘贴 解决方案代码
import Foundation
extension Action: CustomStringConvertible {
var description: String {
var result = "Action - "
switch state {
case .state(let value): result += "State.\(value)"
case .cancelled: result += "cancelled"
}
return result
}
}
let obj = Action()
print(obj)
obj.set(state: .failed)
print(obj)
obj.set(state: .succeeded)
print(obj)
obj.cancel()
print(obj)
//Action - State.started
//Action - State.failed
//Action - State.succeeded
//Action - cancelled
问题内容: 我有3个带有常量的String数组。例如: 我想单独转让这些来枚举的,所以我将有3枚举类:,并用方法来实现。但是我不想将它们放在单独的文件中,因为我只有少量数据和相同类型的数据。在同一个有意义的java文件中将所有这些与访问方法一起使用的最佳方法是什么? 问题答案: 它们可以是三个内部类,如下所示: 然后参考他们,等等。 您也可以使用静态导入,如下所示: .. 为了使引用更短:,等等。
我发现了Clang-12、Clang-13和Clang-14在
枚举是用户定义的数据类型,由一组相关值组成。 关键字用于定义枚举数据类型。 枚举功能 Swift 4中的枚举也类似于C语言和Objective C的结构。 它在类中声明,并且通过该类的实例访问其值。 使用枚举初始化器定义初始成员值。 通过确保标准协议功能,还可以扩展其功能。 语法 使用关键字引入枚举,并将其整个定义放在一对括号中 - 例如,可以按如下方式定义星期几的枚举 - 示例代码 当使用pla
枚举简单的说也是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。 Swift 的枚举类似于 Objective C 和 C 的结构,枚举的功能为: 它声明在类中,可以通过实例化类来访问它的值。 枚举也可以定义构造函数(initializers)来提供一个初始成员值;可以在原始的实现基础上扩展它们的功能。 可以遵守协议(protocols)来提供标准的功能。
问题内容: 我要做什么才能完成此任务?另外,可以说我将其更改为: 我该如何使它符合Decodable? EDit 这是我的完整代码(不起作用) 最终编辑 另外,它将如何处理这样的枚举? 问题答案: 这很简单,只需使用或隐式分配的原始值即可。 被编码到并到 要么 被编码到并到 这是一个简单的示例如何使用它:
我有两个枚举类,一个是外部的,另一个是内部的。 我需要将内部映射到外部,外部映射到内部。所以我做了以下工作, 因此,相同类型的映射在两种方法中重复。难道没有一种很好的方法可以用更少的代码来实现这一点吗?