作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个这样的类(class):class MyClass<Input>
我想检查一下 Input
是否类型是 Void
或不在其初始值设定项内。
我尝试了很多方法,比如尝试转换为 Void
(Swift 编译器允许它但告诉我这总是失败),或者使用 is
,但我在这里遗漏了一些基本的东西。
如何检查泛型类型是否为 Void
?
最佳答案
您可以通过比较通用变量的 .self
值和 Void
来做到这一点。这是一个简单的示例,您可以在 Swift playground 中查看它的工作原理!
import UIKit
class MyClass<T> {
init() {
if(T.self == Void.self) {
print("Void!")
} else {
print("Not Void!")
}
}
}
// Will print Not Void
var test = MyClass<Int>()
// Will print Void
var test2 = MyClass<Void>()
关于swift - 如何检查 Swift 泛型类型是否为 Void?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37313239/
我是一名优秀的程序员,十分优秀!