[英]Cannot subscript a value of type '[Int]' with an index of type '()'
我嘗試
func PRGA() {
var l = 256
var i = 0, j = 0, index = 0
while(l > 0) {
i = (i + 1) % 256
j = (j + stable[i]) % 256
let tmp = stable[i]
stable[i] = stable[j]
stable[j] = tmp
let t = (stable[j] + stable[i]) % 256
sonkey[index+=1] = stable[t]
l -= 1
}
}
這可以在swift2.3中工作,但是當我更新到swift3時,不能工作,在sonkey [index + = 1]中,索引無法轉換為'()'類型的索引
主要問題是+=
是一個語句,而不是Swift中的表達式。 它不會評估為可用作下標的Int
值。
但是,您甚至不需要使用+=
來手動增加index
,因為您可以使用for
循環更輕松地編寫以下代碼:
func PRGA() {
var i = 0, j = 0
for index in 0..<256 {
i = (i + 1) % 256
j = (j + stable[i]) % 256
swap(&stable[i], &stable[j])
let t = (stable[j] + stable[i]) % 256
sonkey[index] = stable[t]
}
}
如果我知道這段代碼要實現的目標,那么我會更好地為您提供幫助。
表達式sonkey[index+=1]
無效。 Swift 3刪除了諸如index++
類的表達式。 我什至不確定Swift 2中的sonkey[index+=1]
是什么意思。
如果您的目標是使用index的當前值作為sonkey
的下標,然后增加后綴,則現在必須分兩個步驟進行操作:
sonkey[index+=1] = stable[t]
index += 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.