在Swift中键入错误:无法转换类型' [UInt64]'的值预期参数类型' inout UInt64'

时间:2018-02-07 12:01:27

标签: swift swift4

Swift的新手,我收到了这个错误:

  

无法转换类型' [UInt64]'的值预期参数类型' inout UInt64'

我不理解" inout" 输入

/// non crypto hash
func strHash(_ str: String) -> UInt64 {
    var result = UInt64 (5381)
    let buf = [UInt8](str.utf8)
    for b in buf {
        result = 127 * (result & 0x00ffffffffffffff) + UInt64(b)
    }
    return result
}

let myString: String = "Hello World"

let words = myString.components(separatedBy: " " )
print(words)
var hashArry = [UInt64]()
for w in words {
    hashArry += strHash(w) // <<<<<<<<< Here
}

1 个答案:

答案 0 :(得分:1)

好吧,你不能像预期的那样使用+=。 使用

hashArray.append(strHash(w))

代替。并且不要怀疑有时非常令人困惑的编译器错误消息: - )