簡體   English   中英

如何在銹中聲明&[&T]]?

[英]How can I declare a &[&T]] in rust?

我有不能編譯的這段代碼:

let vec1 = [1i, 2i, 3i];
let vec2 = [4i, 5i];
let v: &[&[int]] = [&vec1, &vec2];

我在這里想要的很清楚:我想表明v包含&[int]項,即對異構大小數組的引用。 但是,無論我如何標記v的類型,都會出現編譯器錯誤。 以上狀態

tst.rs:8:29: 8:34 error: mismatched types: expected `&[int, ..3]`, found `&[int, ..2]`     (expected array, found array)
tst.rs:8    let v: &[&[int]] = [&vec1, &vec2];
                                       ^~~~~
tst.rs:8:21: 8:35 error: mismatched types: expected `&[&[int]]`, found `[&[int, ..3], ..2]` (expected &-ptr, found array)
tst.rs:8    let v: &[&[int]] = [&vec1, &vec2];
                               ^~~~~~~~~~~~~~

這里有什么解決方案?

let vec1 = [1i, 2i, 3i];
let vec2 = [4i, 5i];
let v = [vec1.as_slice(), vec2.as_slice()];
let v: &[&[int]] = v.as_slice();

第一個v[&[int], ..2]類型,第二個v&[&[int]] 我們無法直接定義&[&[int]]類型的v ,因為我們必須先定義[&[int], ..2]存儲空間,然后才能借用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM