我试图将变量强制转换为变量中保存的其他类型,或者是函数的返回类型。这是一个想法:
let i = 1 as type(of: 3.14)
但是当我这样做时,我会遇到一些错误:
type
和(of: 3.14)
)并发出警告:
(of: Double)
的表达未使用如何将值转换为变量中保存的类型?
答案 0 :(得分:3)
Swift(当前)在编译时需要Type赋值。你可以做之类的事情,但是你需要为你想要使用的每种类型组合编写一个转换器,例如:
FloatConvertable
我会谨慎地沿着这条路走下去,并尝试习惯斯威夫特的做事方式。如果您绝对需要它,您应该能够使用一些通用函数和n=m;
之类的协议来更简单地处理这个问题。
答案 1 :(得分:1)
Swift语法不允许这些类型的表达式。 as
之后的表达式必须是类型的名称,即。 1 as Double
(但是,正如vadian指出的那样,你不能相互投射数字类型,所以更好的例子是mySubClassObject as MySuperClass
)。 Swift是一种强类型语言,这意味着它需要在编译时知道所有变量的类型。