這是我的代碼:
let mut i = 0;
let mut deck: [[&str; 2]; 56] = [[""; 2]; 56]; //Default::default();
for suit in suits.iter() {
for rank in ranks.iter() {
deck[i] = [suit, rank];
i = 1;
}
}
這是錯誤:
error[E0308]: mismatched types
--> src/main.rs:37:23
|
37 | deck[i] = [suit, rank];
| ------- ^^^^^^^^^^^^ expected `str`, found `&str`
| |
| expected due to the type of this binding
|
= note: expected array `[&str; 2]`
found array `[&&str; 2]`
我不確定問題是什么。
uj5u.com熱心網友回復:
問題是在 上iter()產生一個迭代器&T,在這種情況下,元素型別 ( T) 是&str,它是&&str(雙重參考)。但是deck是一個陣列(的陣列)&str,不是&&str。
修復很簡單:因為&stris Copy,您只需要取消參考它:
deck[i] = [*suit, *rank];
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/483010.html
上一篇:在node.js中從一個函式傳遞到另一個函式時資料損壞
下一篇:從作用于整個陣列的函式中訪問索引
