我正在編寫一個擲骰子函數。為了添加每個骰子的結果,我使用 for 循環添加到輸出變量中。但是,當我嘗試構建時出現錯誤;語法錯誤:意外的分號或換行符,需要 {這是在初始化 for 循環的行上拋出的。這是我的代碼: for i := 0; i < [0]si; i++ { output := output + mt.Intn([1]si) }si 只是一個包含 2 個值的 int 數組,而 mt 是我導入時給 math/rand 的名稱。
2 回答

GCT1015
TA貢獻1827條經驗 獲得超4個贊
你的循環有幾個問題:
方括號的使用很奇怪。在類型定義之外,這些在切片/數組名稱之后,例如
x[i]
會給你切片的第i個元素x
。i
循環體內部沒有引用,因此循環的每次迭代都會做同樣的事情。您可能應該在
output = output + ...
沒有冒號的情況下寫作。否則,output
在循環的每次迭代期間都會聲明一個新變量,并在之后立即忘記,以便循環無效。
編譯器錯誤可能是由這些問題中的第一個引起的。

繁華開滿天機
TA貢獻1816條經驗 獲得超4個贊
你在 Go 中使用 varname[idx] 訪問數組,就像在大多數其他語言中一樣。只有在聲明 si 類型的新數組時才使用 [size]si 前綴語法。您收到錯誤是因為您的代碼在語法上無效。您正在嘗試將 i 與 0 si 的數組進行比較。
- 2 回答
- 0 關注
- 218 瀏覽
添加回答
舉報
0/150
提交
取消