我有一个泛型类,其中包含一个泛型数据类型的变量。我需要将此变量转换为字符串。
示例代码 -
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)
throws Cannot invoke initializer for type 'String' with an argument list of type '(T?)' 构建错误
最佳答案
您可以使用字符串插值在字符串中包含 value
。
class Test<T> {
var value:T
var name: String
init(text: String, val: T) {
name = text
value = val
}
func toString() -> String {
return "\(name): \(value)"
}
}
与您的问题无关,但不要将您的任何变量声明为隐式展开的 Optionals(!
在它们的类型之后),尤其是当您在初始化程序中设置它们时。您还应该遵守 Swift 命名约定,即类型 (Test
) 的 UpperCamelCase。
关于swift - 在 Swift 中将通用数据类型的变量转换为 String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54225841/