swift - 转换为变量中保存的类型

标签 swift casting

我正在尝试将变量转换为保存在变量中或函数返回类型的不同类型。这是想法:

let i = 1 as type(of: 3.14)

但是当我这样做时,我遇到了一些错误:

  • 使用未声明的类型“type”
  • 一行中的连续语句必须用';'分隔(这会在 type(of: 3.14) 之间插入一个分号)

还有一个警告:

  • (of: Double) 类型的表达式未使用

如何将值转换为变量中保存的类型?

最佳答案

Swift(当前)需要在编译时分配类型。您可以像这样做一些事情,但是您需要为每个要使用的类型组合编写一个转换器,例如:

func convertType(from item: Int) -> Float {
    return Float(item)
}

var item: Float = convertType(from: 1)

我会谨慎地走这条路,尝试并习惯 Swift 的做事方式。如果你绝对需要它,你应该能够使用一些通用函数和像 FloatConvertable 这样的协议(protocol)来更简单地处理这个问题。

关于swift - 转换为变量中保存的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45110296/

相关文章:

ios - 使用 Firebase 时使用未解析的标识符 'FIRDatabase'

Xcode:如何退出lldb swift repl

c++ - 为什么我通过转换值得到不同的结果

swift - PFUser 到自定义模型

java - 从 long 到十进制类型对象的转换类型错误

c# - 为不可修改的类型实现类似 IConvertible 的功能

ios - 是否可以从 Interface Builder 设置 MDC Collection View Cell?

json - 使用 Alamofire 将 Web 服务响应转换为 JSON 对象

c# - 从 int[] 中选择每 2 个 int 并使用 Lamda 表达式将它们组合成一个 uint64[] 数组

swift - 实现应用内购买以禁用广告