将泛型类型转换为使用Any作为类型参数的类型

时间:2018-01-08 22:21:46

标签: swift generics

我尝试了以下代码,我可以将Array转换为类型参数。

let x: Array = [21,43,12]
let z: Any = x
if let arr = x as? Array<Any>{
    print("yes") // print "yes"
}

但为什么以下代码根本不起作用:

struct Base<T>{
    let val: T
    init(_ val: T){
        self.val = val
    }
}
let y = Base(7)
let an: Any = y
if let temp = an as? Base<Any> {
    print("yes") // the line won't print.
}

这是一个错误吗?

是否可以这样做:

let arr = [232,32,55]
let x: Any = arr
if x is Array { // error.
    print("yes") // won't work. is any way to make it work?
} 

0 个答案:

没有答案