1
有誰知道如何傳遞一個二維數組以在Rust中運行?該函數需要更改數組的值。將二維數組傳遞給Rust中的函數
這是我如何創建數組:
let state=[mut [mut 0u8, ..4], ..4];
感謝。
有誰知道如何傳遞一個二維數組以在Rust中運行?該函數需要更改數組的值。將二維數組傳遞給Rust中的函數
這是我如何創建數組:
let state=[mut [mut 0u8, ..4], ..4];
感謝。
(注:生鏽0.5,這是還沒有出來的時候,這一問題被問)
愚蠢的辦法,找出一個值的類型是寫一個函數與錯誤類型,然後嘗試通過它。 :)
fn func(state: int) {}
生產:
error: mismatched types: expected `int` but found `[mut [mut u8]/4]/4` (expected int but found vector)
所以這是你喜歡的類型。除了它不再是這樣寫的,所以看起來這個輸出中有一個錯誤。非常想問問編譯器。你真的想要:
fn func(state: [mut [mut u8 * 4] * 4]) { ... }
但mut
裏面的向量是不贊成;您可以通過使變量本身mut
獲得相同的效果。這給我們帶來了:
let mut state = [[0u8, ..4], ..4];
func(state);
// ...
fn func(state: [[u8 * 4] * 4]) {}
如果你想真正改變state
裏面的功能,你需要一個可變的指針指向它,所以最後:
let mut state = [[0u8, ..4], ..4];
func(&mut state);
// ...
fn func(state: &mut [[u8 * 4] * 4]) {}