在 Swift 中传递并打印枚举中的所有情况

2024-03-27

考虑这个简单的枚举:

enum myEnum: String {
    case abc = "ABC"
    case xyz = "XYZ"
}

我想编写一个可以打印枚举中所有情况的函数。喜欢..

printEnumCases(myEnum)

预期结果:

ABC
XYZ

注意:我可以像这样迭代一个枚举this https://stackoverflow.com/a/49588446/1389515。但我不知道如何传递枚举。


您可以定义一个通用函数,它将类型作为参数,即CaseIterable and RawRepresentable:

func printEnumCases<T>(_: T.Type) where T: CaseIterable & RawRepresentable {
    for c in T.allCases {
        print(c.rawValue)
    }
}

Usage:

enum MyEnum: String, CaseIterable {
    case abc = "ABC"
    case xyz = "XYZ"
}

printEnumCases(MyEnum.self)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Swift 中传递并打印枚举中的所有情况 的相关文章

  • NSRange 到 Range

    我怎样才能转换NSRange to Range
  • iOS Swift 中断键盘事件

    我在拦截键盘事件时遇到问题 我已将我的 iOS 与 SteelSeries Free 游戏手柄控制器 连接 当连接到 iOS 时 它将被检测为蓝牙键盘 这是在我打开Notes时测试的 按下游戏手柄上的任何按钮都会写一个字母 我需要拦截此按钮
  • Swift - 停止 avaudioplayer

    我正在尝试将音板构建到应用程序中 并找到了一种使用标签来控制播放声音的有效方法 不过 我现在正在尝试集成一个可以与 stop 方法上的AVAudioPlayer但是我当前的代码出现错误 EXC BAD ACCESS 这就是我现在正在使用的
  • 如何覆盖应用程序中的内部框架方法(框架外部)

    在 Swift 中子类化时是否有重写内部框架方法 前任 超类 public class BarChartRenderer ChartDataRendererBase internal func drawDataSet context con
  • 将浮点数截断为小数点后两位的最简单方法?

    在 Swift 中 有没有办法将浮点数截断为小数点后两位 以便您可以用它执行进一步的计算 我见过的所有线程都涉及到字符串的转换 我不知道如何在数学上使用它 我尝试使用扩展 在这个论坛上找到 认为我可以在截断后转换回浮动 但我最终回到了开始的
  • 快速布尔运算

    这实在令人困惑 有人有什么想法吗 let viewHasMovedToRight false initially I want this to be false then func moveViewToRight sender UIButt
  • 如何将 4 个字节转换为 Swift 浮点数?

    我正在用 Swift 编写一个 MsgPack 解析器作为学习该语言的一种方式 感觉不太适合这项任务 但我一直在进步 现在我遇到了一个块 我似乎无法说服它将 4 个字节转换为浮点数 var bytes Array
  • OSX Swift 在默认浏览器中打开 URL

    如何使用 Swift 作为编程语言和 OSX 作为平台在系统默认浏览器中打开 URL 我发现了很多UIApplication like UIApplication sharedApplication openURL NSURL string
  • 从 Firestore Swift 获取文档 ID

    我正在尝试从中获取文档IDFirestore通过执行这样的查询 func updateStatusInFirestore let orderid saleOrder first Orderid print orderid let setti
  • 在 SwiftUI 中,如何执行手势但将手势转发到其后面的视图?

    我正在创建一个工具提示系统 如果用户触摸工具提示之外的任何地方 我想关闭工具提示 我希望这样在工具提示之外的触摸既可以消除工具提示 又可以激活用户点击的任何控件 因此 您可以打开一个工具提示 然后仍然单击工具提示外部的按钮 并在第一次点击时
  • swift 中闭包和函数作为参数的区别

    我有将近 4 年的 Objective C 经验 并且是 swift 的新手 我试图从 Objective C 的角度理解 swift 的概念 所以如果我错了 请指导我 在目标 c 中 我们有块 可以稍后异步执行的代码块 这绝对是完全合理的
  • 在 Firebase 中为 TextView Swift 保存字体和大小的方法是什么

    我想在 Firebase 中保存 Swift 中 TextView 的字体 大小和对齐方式 这样我就可以在另一个视图中调用它 我只能将颜色保存在 Firebase 中 这是显示我是如何做到的的代码 IBAction func SendBtn
  • SwiftUI - 从 NSObject 继承的 ObservableObject 在 iOS 13 中不会更新

    我知道 这是 无法在 iOS XX 中工作 问题之一 但我完全陷入困境 所以我有一个ObservableObject继承自的类NSObject 因为我需要听委托方法UISearchResultsUpdating class SearchBa
  • 弱变量中间为零

    弱变量什么时候变为零 weak var backgroundNode SKSpriteNode texture SKTexture image initialBackgroundImage backgroundNode position C
  • 删除具有estimatedItemSize 的项目时 UICollectionView 单元格大小会调整

    我有一个简单的项目 其中的故事板仅包含一个UICollectionViewController 使用 Xcode 7 1 1 为 iOS 9 1 构建 class ViewController UICollectionViewControl
  • Swift 包管理器:“多个目标名为...”

    我正在尝试构建一个服务器端 Swift Web 应用程序 我的应用程序的基础框架将是Kitura https www kitura io来自IBM 此外 我还想利用AWS SDK Swift https github com noppoMa
  • SwiftUI - 预览时未知的预览提供程序“ContentView_Previews_”。发生在一个全新的项目中

    我有这个简单的观点 import SwiftUI struct ContentView View var body some View Text Hello struct ContentView Previews PreviewProvid
  • Swift:无法为“[UIViewController]”类型的值添加下标?

    我试图弄清楚如何在 Xcode 7 iOS9 上的 Swift 中解决此问题 并且我也遇到此错误 无法为 UIViewController 类型的值添加下标 索引类型为 Int 任何建议表示赞赏 谢谢 My code func indexP
  • iOS 11 浮动 TableView 标题

    有一个应用程序包含多个部分 展开 时每个部分有几行 折叠 时没有 每个部分都有一个部分标题 使用以下子类重用它们UITableViewHeaderFooterView等等 到目前为止一切顺利 然后在 iOS 11 中 我使用了可视化调试器
  • 如何从 Firebase 同步检索数据?

    我有两个集合 即用户和问题 根据使用 userId 登录的用户 我检索currQuestion价值来自users收藏 基于currQuestion值 我需要检索question来自 Firebase 的文档Questions收藏 我使用下面

随机推荐

  • YouTube Data API v3:无需打开浏览器即可从服务器上传视频

    我每天尝试从我的服务器上传视频到我的帐户 但浏览器无法访问 我可以在桌面上执行此操作 通过运行下面提到的脚本打开浏览器 请求我的权限并完成上传视频所需的完整授权 然后上传视频 python upload video py file clip
  • 我可以转换对象并访问 C++ 中的私有数据成员吗?

    我想访问类中的私有数据成员 类中没有成员函数来访问私有数据成员 这是私人的 我想上这门课 想知道如何打开它 一种方法是复制类的声明 将私有成员设为公共 然后将新类称为 some else 然后我重新解释转换并复制原始对象 这有效 但我想要一
  • 只做如果一天...批处理文件

    你好 我有一个批处理文件 如下所示 if day monday tuesday wednesday thursday friday goto yes else goto no 现在我知道第一行不起作用 我真正想要发生的事情 它会自动检查今天
  • 如何让通用ListView只显示用户的列表?

    我是 Django 新手 这是我第一次使用基于类的视图 我想使用通用 ListView 来显示用户拥有的 表 列表 到目前为止 我已经让它显示数据库中的所有表 但我只希望它显示登录用户的表格 这就是我的观点 from django shor
  • gcc -Wpadded 不提供任何警告

    我正在尝试使用 gcc 的 Wpadded 选项来了解 gcc 是否可以帮助我找出结构是否已填充 这是下面的代码 include
  • 从 R 中的 ca.jo 中的 Johannsen 协整方法估计 t 统计量

    我正在研究 R 中 vars 库中的小插图工作示例 我了解小插图中的大部分示例 除了小插图的表 5here https cran r project org web packages vars vignettes vars pdf 运行以下
  • Haskell 中具有多个参数的部分应用程序

    给定某个函数 f x1 x2 x3 xN 在多个地方部分应用它通常很有用 例如 对于 N 3 我们可以定义 g x f 1 x 3 然而 Haskell 中的标准部分应用程序并不是这样工作的 它只允许我们通过修复函数的第一个参数来部分应用函
  • 当基本词以 I 开头时,如何命名接口?

    我想为 Items 创建一个界面 通常 我会通过在基本词中添加 I 前缀来命名接口 但在这种情况下 我的基本词已经以 I 开头 以下是我的一些想法 IItem 两个我 Iitem 情况不同 项目接口 跳过I前缀 写出Interface 什么
  • Java静态方法的优缺点

    我以前没有使用过很多静态方法 但最近我倾向于使用更多静态方法 例如 如果我想在类中设置一个布尔标志 或者访问一个类而不需要通过类传递实际对象 例如 public class MainLoop private static volatile
  • rabbitmq-erlang-client,使用 rebar 友好的 pkg,在开发环境上工作在 rebar 版本上失败

    我成功地将rabbitmq erlang client的rebar友好包用于一个简单的Hello World rebarized和OTP 兼容 应用程序 并且在开发环境中工作正常 我能够启动 erl 控制台并执行我的操作applicatio
  • MemberwiseClone 相当于现有对象吗?

    这里有很多关于 MemberwiseClone 的问题 但我找不到任何准确的内容 据我了解 MemberwiseClone 基本上只是复制对象的内存区域 将其转储到其他地方 然后将其称为该对象的新实例 显然非常快 对于大型对象来说 这是制作
  • 使用 .NET Core 3.1 sdk 时,有没有办法限制 .NET Core 项目仅生成 .dll 作为输出文件

    当我使用 NET Core 3 1 sdk 构建 NET Core 控制台应用程序时 它会生成 exe 和 dll 作为输出 当我使用 NET Core 2 1 时 它仅生成 dll 作为输出 有没有办法限制 NET Core 3 1 sd
  • 创建一个排除某些文件的补丁文件

    我想创建一个补丁文件 仅将某些文件从 dir2 修补到 dir1 两者都是同一项目的 git 存储库 但是 dir2 包含第一个版本的高度修改版本 我只想修补对某些文件所做的更改 dir2 还具有 dir1 没有的额外文件 主要是 dir1
  • 在 Ubuntu WSL2 上连接到本地主机的问题

    我在本地为 django 项目设置了 Apache2 服务器 并且运行得非常好 问题是 休息一天后我回到它并尝试连接到服务器 但不知何故我无法连接到它 即使在检查 apache 服务是否正在运行并重新加载配置以确保确定之后也是如此 我无法从
  • 在 Firefox 或我的代理中禁用 websocket

    我已将 Firefox 配置为使用我的 http 和 https 代理 是的 我自己编写代理代码 因此我可以完全控制代理 您可能知道 无法再通过 about config 在 Firefox 中禁用 WebSocket 我正在寻找一种轻量级
  • C# 参数中的键值对

    我正在寻找一种方法来实现以下功能 myFunction Key value Key2 value 我确信匿名类型的某些东西会非常简单 但我没有看到它 我能想到的唯一解决方案是params KeyValuePair
  • Angular 6 observables - 从 .subscribe() 函数中提取数据并在其他地方使用

    我用可观察到的东西把头撞在墙上 我能找到的几乎所有文档都是较旧的rxjs句法 我有一个可观察的 API 调用 我在其他地方调用它并订阅它 尝试用此数据填充表GET要求 如果我简单地console log my getData函数 它记录订阅
  • 构造函数与类 {proguard] 不匹配

    我在我的应用程序中启用 proguard 每当我构建应用程序时 我都会收到以下错误 Constructor not matched for class com acs nomad d b e 根据我的映射文件 它所指的类如下 package
  • Android - 条码片段结果不显示

    解决了 应用程序工作正常 不会崩溃 但应该将 resultView 文本从 Hasil Scan 更新为扫描结果 但事实并非如此 问题是扫描后文本视图 结果视图 未更新 我使用 DM77 Zxing 条码扫描仪 这是我到目前为止所做的代码
  • 在 Swift 中传递并打印枚举中的所有情况

    考虑这个简单的枚举 enum myEnum String case abc ABC case xyz XYZ 我想编写一个可以打印枚举中所有情况的函数 喜欢 printEnumCases myEnum 预期结果 ABC XYZ 注意 我可以