[英]How to check if a Swift generic type is Void?
我有一個類這樣的類: class MyClass<Input>
我想在其初始化器中檢查Input
類型是否為Void
。
我嘗試了各種各樣的事情,比如試圖轉換為Void
(Swift編譯器允許它但告訴我這總是失敗),或者使用is
,但我在這里缺少一些基本的東西。
如何檢查泛型類型是否為Void
?
您可以通過比較泛型變量和Void
的.self
值來完成此操作。 這是一個快速的例子,你可以堅持在Swift游樂場看它的工作!
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>()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.