我确信我错过了一些非常非常明显的事情,但有人能告诉我为什么我遇到两个Integers
倍增的麻烦吗?以下代码:
let twenty: Integer = 20
let ten: Integer = 10
let result: Integer = twenty * ten
显示错误Could not find an overload for '*' that accepts the supplied arguments
。
有关同一错误的SO的其他问题是由于尝试将不同类型相乘而引起的,但这些都是Integer
类型吗?
(PS:我尝试运行的实际代码是var value = self.value * 10
,但我在调试时已将其扩展为示例,以确保正确使用正确的类型)
答案 0 :(得分:5)
使用Int
代替。 Integer
是一个协议。
答案 1 :(得分:4)
Integer
是协议而非类型。请改用Int
。
答案 2 :(得分:1)
如前所述,Integer是一种不是类型的协议。
在您的情况下,您不需要明确表示类型,因为它是隐式转换。
这可能就够了
let twenty = 20
let ten = 10
let result = twenty * ten
NSLog("%d", result)