簡體   English   中英

如何檢查Swift泛型類型是否為Void?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM