swift - 在 Swift 中将泛型数据类型的变量转换为 String
问题描述
我有一个泛型类,其中包含一个泛型数据类型的变量。我需要将此变量转换为字符串。
示例代码 -
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 来向下转换它!字符串,但它会在运行时导致崩溃
执行let temp = String(value)
throws 无法使用类型为“(T?)”的参数列表调用类型“String”的初始化程序构建错误
解决方案
您可以使用字符串插值将其包含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。
推荐阅读
- php - 如何在访问另一个站点之前开始与一个站点的会话?
- ffmpeg - 我如何在 ffmpeg 中实现绿屏效果,以便使用 ffmpeg 将图像放入具有白色背景的视频中?
- java - Spring Boot 中动态属性的选项
- java - 如何显示 Room 数据库中的数据而不是哈希码?(安卓工作室,Java)
- c - 将字符串写入字符串但在其旁边的代码
- c++ - 用派生类初始化(分配)基类 shared_ptr
- ruby-on-rails - 在 AWS Cloud 9 上预览 rails 服务器:VFS 连接不存在 [仅限 Firefox]
- javascript - 如何在 Solidity 中构建 HTML 解决方案
- javascript - 循环后返回对象中未定义值的函数
- java - 在android studio中单击时如何使复选框可编辑