swift - 我是 swift 新手,有人可以解释如何将闭包用作枚举的 rawValues
问题描述
我是 swift 的新手,有人可以解释如何将闭包用作枚举的 rawValues。
enum Tpi:Function{
case func1={()->Void in
print("say hi!")}
}
var xsel=Tpi.func1.rawValue
xsel()
解决方案
Function
不是 Swift 中的现有类型。
Swift 枚举只能从RawRepresentable
类型继承,因此无法将函数用作枚举的 RawValue(老实说,有点奇怪)。
这是实现类似目标的一种方法:
enum Tpi {
case func1
var function: (() -> Void) {
switch self {
case .func1:
return {
print("say hi!")
}
}
}
}
var xsel = Tpi.func1.function
xsel()
推荐阅读
- java - 错误:选项 -Xbootclasspath/p:目标 14 不允许 - Netbeans 12
- hyperledger-fabric - Hyperledger,使用 configtxgen CLI 工具创建通道
- powerbi - Power BI - 如何将 Web URL 分配给图像
- python - Pandas - 根据 str 包含从另一列创建具有值的新列
- java - Java:是否可以在一个方法中使用由 if 语句分隔的同名变量
- android - 使用 gomobile 的 Android 文件服务器处理程序
- django - Django Rest API - 通过令牌获取和验证用户 ID
- git - 如果 git commit IDs 是 SHA-1 输出,而 SHA-1 产生 160 位输出,为什么 git commit IDs 是 320 位?
- java - Mongo Java Driver - 如何使用部分索引创建复合索引?
- c++ - 链表:如何实现析构函数、复制构造函数和复制赋值运算符?