转换为变量中保存的类型

Cal*_*ter 7 casting swift

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

let i = 1 as type(of: 3.14)
Run Code Online (Sandbox Code Playgroud)

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

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

并警告:

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

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

Str*_*ers 4

Swift(当前)需要在编译时进行类型分配。您可以执行类似的操作,但是您需要为要使用的每种类型组合编写一个转换器,例如:

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

var item: Float = convertType(from: 1)
Run Code Online (Sandbox Code Playgroud)

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