Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift不能调用'*';具有类型为';(Int,Int)和"x27,;_Swift - Fatal编程技术网

Swift不能调用'*';具有类型为';(Int,Int)和"x27,;

Swift不能调用'*';具有类型为';(Int,Int)和"x27,;,swift,Swift,所以我试着写一些基本的Swift,我写了: func timesByHundred(d: Int) { return d * 100 } 编译器说“不能用类型为“(Int,IntegerLiteralConvertible)”的参数列表调用“*”。所以我把它改成: func timesByHundred(d: Int) { let e: Int = 100 return d * e } 编译器说“不能用类型为“(Int,Int)”的参数列表调用“*”。如果不是两个整数

所以我试着写一些基本的Swift,我写了:

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
}

斯威夫特的编译器错误有时真的很可怕。它让我想起了20世纪80年代中期的C编译器。也许更糟,因为错误有时不仅仅是模糊的,而是完全错误的。@Duncac我同意。主要的问题是,它经常“太努力”使其编译,并且在类型推断太深时抛出错误。