【发布时间】:2019-06-11 01:23:17
【问题描述】:
我有一个泛型类,其中包含一个泛型数据类型的变量。我需要将此变量转换为字符串。
示例代码 -
class test<T> {
var value:T!
var name: String!
init(text: String, val: T)
{
name = text
value = val
}
func toString() -> String {
let temp = value as! String
//let temp = String(value)
return name + ": " + temp
}
}
我尝试通过 let temp = value as 来向下转换它! String 但会导致运行时崩溃
执行let temp = String(value) 抛出无法调用类型为“String”的初始化程序,其参数列表为“(T?)”类型的构建错误
【问题讨论】:
-
如果你将 T 指定为 String 就不会发生崩溃,你能显示测试的创建吗?
-
在我的情况下,T 将是 Int 或 Float
标签: swift generics type-conversion