Swift中的类型错误:无法转换类型为';[UInt64]和#x27;到预期的参数类型';inout UInt64';

Swift中的类型错误:无法转换类型为';[UInt64]和#x27;到预期的参数类型';inout UInt64';,swift,swift4,Swift,Swift4,斯威夫特新手,我遇到了以下错误: 无法将类型“[UInt64]”的值转换为预期的参数类型“inout UInt64” 我不懂“输入输出”的输入法 ///非加密哈希 func strHash(str:String)->UInt64{ var结果=UInt64(5381) 设buf=[UInt8](str.utf8) b在buf{ 结果=127*(结果&0x00FFFFFFFFFFFF)+UInt64(b) } 返回结果 } 让myString:String=“你好,世界” 让words=myStr

斯威夫特新手,我遇到了以下错误:

无法将类型“[UInt64]”的值转换为预期的参数类型“inout UInt64”

我不懂“输入输出”的输入法

///非加密哈希
func strHash(str:String)->UInt64{
var结果=UInt64(5381)
设buf=[UInt8](str.utf8)
b在buf{
结果=127*(结果&0x00FFFFFFFFFFFF)+UInt64(b)
}
返回结果
}
让myString:String=“你好,世界”
让words=myString.components(分隔符:“”)
印刷品(字)
var hashArry=[UInt64]()
用文字表示w{

hashArry+=strHash(w)/好吧,您不能像预期的那样使用
+=
。 使用


相反。不要对有时非常混乱的编译器错误消息感到奇怪:-)

谢谢!我确实看到了该方法,但没有将0b10和0b10放在一起!感谢您的帮助!
/// 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
}
hashArray.append(strHash(w))