问题标签 [associated-value]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
56 浏览

swift - Swift 使用带有自定义答案的枚举

我想在 Swift 中使用枚举来处理学校科目等内容。如果有人想要另一个不在枚举中的主题,他可以输入主题作为自定义值。例如:

0 投票
2 回答
1178 浏览

swift - 带有类的枚举上的 Swift Switch 案例

这是我第一次使用这种枚举,带有关联值类型的枚举,我需要switch根据对象的类型进行声明,我无法做到,这是枚举:

我的对象有一个 type 变量TypeEnum,现在我需要检查枚举中的对象类型:

我不知道该放什么而不是???. Xcode 告诉我放一些东西,但我只想打开.foo.

有任何想法吗?

0 投票
1 回答
944 浏览

ios - 在 Swift 中使用枚举设计错误类型

也许我只是完全想多了,但我正在尝试使用枚举来处理来自我正在集成的 API 的错误。

从这个 API 的 swagger 文档中,我可以看到所有可能返回的响应。我把这些写成一个BaseError枚举:


现在在我的客户中是我的问题开始的地方。

我最初的希望是采用这个BaseError枚举并根据我所在的客户扩展/添加其他案例。

就像是:

这将允许我返回一个错误,例如ClientSpecificError.unauthorized


现在我知道这是不可能的,因为枚举不能继承其他枚举,但我对如何实现这一点缺少一些理解。

问题

还有其他方法可以使用枚举来实现吗?

这甚至是“最佳实践”吗?

0 投票
2 回答
45 浏览

swift - Swift 2 到 4 迁移的异常处理

我正在将一些最初用 Swift2 编写的代码迁移到 Swift4。我已经完成了 Swift3 中间升级,并且在 Xcode9 中遇到了一些错误,这些错误涉及一些用户定义的枚举在其源文件之外使用。

考虑以下部分项目结构......

ExceptionTypes.swift

UseExceptions.swift

我也尝试过我在网上看到的变体语法

仍然没有运气,我看到编译器错误:

我试图定义 MyError 范围,public但它不起作用。我有一种感觉,我可能错过了导入或其他东西。我不确定这是否重要,但Autocomplete在 Xcode 中的 UseExceptions.swift 文件在我开始输入时确实可以识别MyError.

如上所示,在同级目录中的 swift 文件之间使用定义有什么特别之处吗?或者 Swift 4 处理异常处理的方式还有其他问题吗?

0 投票
2 回答
52 浏览

swift - 您如何对具有您不关心的关联值的枚举案例进行简单的内联测试?

鉴于此代码:

如何更新无法编译的部分?

0 投票
1 回答
134 浏览

swift - 测试基于枚举的变量是否*不*等于具有关联值的特定情况的最简单方法是什么?

我们有以下枚举和变量

我们想测试我们是否处于除loaded.

由于有一个关联的值,这当然是行不通的......

但我希望能找到除了这些之外的其他东西......

或者

那么测试这种情况的最简单方法是什么?

0 投票
4 回答
24527 浏览

swift - 如何使关联值相等的 Swift 枚举

我有一个关联值的枚举,我想将其设为可用于测试目的,但不知道这种模式如何与具有多个参数的枚举案例一起使用。

例如,总结如下,我知道使标题相等的语法。这对于包含不同类型的多个值的选项如何工作?

我知道 Swift 4.1 可以为我们综合 Equatable 的一致性,但目前我无法更新到这个版本。

0 投票
0 回答
411 浏览

swift - 在 Swift 中声明必须符合至少一个协议的协议变量

如何在 Swift4 中的协议中定义一个变量,该变量至少需要符合一个协议,但也可以符合其他协议?

例如,如果协议声明变量应符合协议 B 并且我希望实现中的变量符合不同协议 (B + C) 的组合,我现在会收到错误消息。

编辑: 我编辑了我的原始帖子以使问题更清楚我还找到了一个解决方案来做我想要实现的事情:我可以拆分类并在符合以下协议之一的实现上进行扩展:

编译器会检查 customViewController 是否符合 C?。

0 投票
1 回答
20 浏览

dictionary - 将字母与其值相关联并在python中对输出进行排序

请帮助解决这个问题。我有这样的输入:

我想以排序方式打印与每个字母相关的数字,如下所示:

到目前为止,我能够将字母和数字存储在数组 b 中,但是当我尝试创建类似字典的数组以将单个字母与其值连接时,我遇到了这个错误。

我正在研究 python 3.6 以防万一。提前致谢。

0 投票
1 回答
996 浏览

swift - 快速枚举镜像获取关联值名称

我需要获取枚举关联值的名称。

例如:

问题:我想从iosMirror获取iosApp的关联值名称“version”,该怎么做?或使用其他方式(不是镜像)来获取字符串“版本”。