我的最終目標是洗牌矩陣的行(爲此我使用納爾代數)。如何在Vec或切片中設置範圍?
爲了解決這個問題,我需要設置一個數組的可變範圍(slice)。 假設我有一個數組這樣(讓我們說這是一個3×3矩陣):
let mut scores = [7, 8, 9, 10, 11, 12, 13, 14, 15];
我已經提取的行這樣的:
let r = &scores[..].chunks(3).collect::<Vec<_>>()[1];
現在,對於克努特洗牌我需要交換此與另一排。我需要做的是:
scores.chunks_mut(3)[0] = r;
然而,這未能按這樣的:
cannot index a value of type `core::slice::ChunksMut<'_, _>`
請創建一個[MCVE](/幫助/ MCVE)遊樂場(https://play.rust-lang.org/)。例如,這[工作得很好](http://is.gd/0GYnam)。 – Shepmaster
嗯,工作,因爲你只是添加到一個元素..我想設置一個範圍,如標題中所述。 http://is.gd/ULkN6j – bge0
可能的重複http://stackoverflow.com/questions/28219231/how-to-idiomatically-copy-a-slice或http://stackoverflow.com/questions/25225346/how不同尺寸的數組之間的數組之間的拷貝 – Shepmaster