这是我在Swift编程中的第一天,到现在为止,我们一直在使用ObjectiveC。喜欢,
var i = 10 var j = 10 var k = i + j println(k)
但是,当我将其中一个值更改为float时,会出现错误。
var i = 10 var j = 10.4 var k = i + j println(k)
错误:main.swift:13:11:找不到接受提供的参数的’+’的重载
现在,我进行了Google搜索,并尝试了一些尝试,例如Double(i+j),但是它不起作用。Swift在这种情况下应该将int隐式转换为float,不是吗?
Double(i+j)
如果我在理解Swift语言时遇到任何错误,请提出建议。
根据您想要的结果,应使用该类型的init方法将其转换为适当的类型。
例如。
var myInt = 5; var myDouble = 3.4;
如果我想在结果中加倍
var doubleResult = Double(myInt) + myDouble;
如果我想要一个整数来代替,请注意双精度将被截断。
var intResult = myInt + Int(myDouble)
我在您的示例中看到的问题是,您正在尝试执行加法运算,然后将其转换,但是在执行加法运算之前,两个值必须相同。
苹果已经对其安静进行了严格的规定,以避免类型不匹配和转换错误。有时候对于来自其他语言的开发人员来说,这可能有点“过于严格”,一开始让我很烦,但是我已经习惯了。