所以我试着写一些基本的斯威夫特,我写了:

func timesByHundred(d: Int) {
    return d * 100
}

编译器说“不能用类型为”(int,integerliteralconvertible)“的参数列表调用”*“”。所以我把它改成:
func timesByHundred(d: Int) {
    let e: Int = 100
    return d * e
}

编译器说“不能用类型为”(int,int)“的参数列表调用”*“。”如果不是两个整数,我还能乘什么??这里有一些类似的问题,但他们都有人尝试在不同类型上操作。

最佳答案

编译器错误具有误导性。
真正的问题是,您错过了函数返回类型的声明,因此编译器会推断出Void并在尝试(和失败)为返回*Void找到合适的重载时感到困惑。
将您的功能更改为

func timesByHundred(d: Int) -> Int {
    return d * 100
}

10-07 18:55
查看更多