Swift:将类型作为参数传递
Posted
技术标签:
【中文标题】Swift:将类型作为参数传递【英文标题】:Swift: Pass Type as Parameter 【发布时间】:2015-03-22 21:17:38 【问题描述】:是否可以在 Swift 中将类型作为函数参数传入?注意:我不想传入指定类型的对象,而是传入类型本身。例如,如果我想复制 Swift 的 as?
功能:
infix operator <-? associativity left
func <-? <U,T>(x:U?, t:T) -> T?
if let z = x as? t
return z
当然,t
作为类型传入,但我想传入类型本身,以便在函数体中检查该类型。
【问题讨论】:
【参考方案1】:您可以使用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
【讨论】:
啊,是的,做到了。谢谢!以上是关于Swift:将类型作为参数传递的主要内容,如果未能解决你的问题,请参考以下文章