本文簡要介紹rust語言中 Macro alloc::vec
的用法。
用法
macro_rules! vec {
() => { ... };
($elem : expr ; $n : expr) => { ... };
($($x : expr), + $(,) ?) => { ... };
}
創建一個包含參數的 Vec
。
vec!
允許使用與數組表達式相同的語法定義 Vec
s。這個宏有兩種形式:
- 創建一個包含給定元素列表的
Vec
:
let v = vec![1, 2, 3];
assert_eq!(v[0], 1);
assert_eq!(v[1], 2);
assert_eq!(v[2], 3);
- 從給定的元素和大小創建一個
Vec
:
let v = vec![1; 3];
assert_eq!(v, [1, 1, 1]);
請注意,與數組表達式不同,此語法支持實現 Clone
的所有元素,並且元素的數量不必是常數。
這將使用clone
來複製一個表達式,因此在使用具有非標準Clone
實現的類型時應該小心。例如,vec![Rc::new(1); 5]
將創建一個包含五個對相同裝箱整數值的引用的向量,而不是五個指向獨立裝箱整數的引用。
另外,請注意 vec![expr; 0]
是允許的,它會生成一個空向量。但是,這仍將評估 expr
,並立即刪除結果值,因此請注意副作用。
相關用法
- Rust vec用法及代碼示例
- Rust vars_os用法及代碼示例
- Rust var用法及代碼示例
- Rust vars用法及代碼示例
- Rust var_os用法及代碼示例
- Rust variant_count用法及代碼示例
- Rust UdpSocket.set_multicast_loop_v6用法及代碼示例
- Rust i64.overflowing_add_unsigned用法及代碼示例
- Rust Box.downcast用法及代碼示例
- Rust BTreeMap.last_key_value用法及代碼示例
- Rust str.make_ascii_uppercase用法及代碼示例
- Rust u128.checked_pow用法及代碼示例
- Rust usize.wrapping_mul用法及代碼示例
- Rust AtomicU8.fetch_sub用法及代碼示例
- Rust PanicInfo.payload用法及代碼示例
- Rust MaybeUninit.assume_init_mut用法及代碼示例
- Rust String.try_reserve用法及代碼示例
- Rust Mutex.new用法及代碼示例
- Rust f32.exp用法及代碼示例
- Rust Result.unwrap_or_else用法及代碼示例
- Rust slice.sort_unstable_by_key用法及代碼示例
- Rust Formatter.precision用法及代碼示例
- Rust i128.log2用法及代碼示例
- Rust OsStr.to_ascii_uppercase用法及代碼示例
- Rust f32.hypot用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Macro alloc::vec。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。