swift - 在 Swift 中将通用数据类型的变量转换为 String

标签 swift generics type-conversion

我有一个泛型类,其中包含一个泛型数据类型的变量。我需要将此变量转换为字符串。

示例代码 -

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/

相关文章:

Golang 类型在指向一种类型 slice 的指针 slice 与另一种类型 slice 之间的类型转换

c# - 将对象转换为集合

c++ - 为什么这个返回值? C++ int/char 混淆

c# - 扩展方法中where子句关键字的含义

generics - 在 F# 中,两种泛型类型约束表示有什么区别

swift - UITableView 重叠一切

ios - 如何将自定义 View 添加到上下文菜单 iOS

ios - Storyboard?.instantiateViewController(withIdentifier : "") as! viewcontroller

ios - IBAction 不让我进入下一页? swift Xcode

相同的通用函数签名的 Python 类型注释