簡體   English   中英

Swift:傳遞類型作為參數

[英]Swift: Pass Type as Parameter

是否可以在Swift中傳入Type作為函數參數? 注意:我不想傳入指定類型的對象,而是傳遞Type本身。 例如,如果我想將Swift復制as? 功能:

infix operator <-? { associativity left }
func <-? <U,T>(x:U?, t:T) -> T? {
  if let z = x as? t {
      return z
    }
  }
}

當然, t作為一個類型傳入,但我想傳入Type本身,所以我可以在函數體中檢查該類型。

您可以使用T.Type ,但必須轉換為T而不是t

infix operator <-? { associativity left }
func <-? <U,T>(x:U?, t:T.Type) -> T? {
    if let z = x as? T {
        return z
    }
    return nil
}

樣品用法:

[1,2, 3] <-? NSArray.self // Prints {[1, 2, 3]}
[1,2, 3] <-? NSDictionary.self // Prints nil

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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