所以我试着写一些基本的Swift,我写道:
func timesByHundred(d: Int) {
return d * 100
}
并且编译器说“无法使用类型'(Int,IntegerLiteralConvertible)'”的参数列表调用'*'。所以我把它改成了:
func timesByHundred(d: Int) {
let e: Int = 100
return d * e
}
并且编译器说“不能使用类型'(Int,Int)'”的参数列表调用'*'。如果不是两个整数,我甚至可以乘以什么?这里有一些类似的问题,但他们都有人试图在不同的类型上运作。
答案 0 :(得分:9)
编译错误具有误导性。
真正的问题是你错过了函数返回类型的声明,所以编译器推断出Void
并且在尝试(并且失败)时找到适合的*
重载时会感到困惑Void
。
将您的功能更改为
func timesByHundred(d: Int) -> Int {
return d * 100
}