Box<[T]>
和 Vec<T>
T 參數 | &T 參數 | &mut T 參數 | T 回傳值 | Option<T> 參數 | Option<T> 回傳值 | JavaScript 表示法 |
---|---|---|---|---|---|---|
是 | 否 | 否 | 是 | 是 | 是 | 一個 JavaScript Array 物件 |
您可以將數種不同類型的 boxed slices 和 Vec
在 JS 之間傳遞
JsValue
s。- 導入的 JavaScript 類型。
- 匯出的 Rust 類型。
String
s。
您也可以將數字的 boxed slices 傳遞至 JS,但它們會被轉換為 typed arrays (Uint8Array
、Int32Array
等) 而不是一般陣列。
Rust 用法範例
# #![allow(unused_variables)] #fn main() { use wasm_bindgen::prelude::*; #[wasm_bindgen] pub fn take_boxed_js_value_slice_by_value(x: Box<[JsValue]>) {} #[wasm_bindgen] pub fn return_boxed_js_value_slice() -> Box<[JsValue]> { vec![JsValue::NULL, JsValue::UNDEFINED].into_boxed_slice() } #[wasm_bindgen] pub fn take_option_boxed_js_value_slice(x: Option<Box<[JsValue]>>) {} #[wasm_bindgen] pub fn return_option_boxed_js_value_slice() -> Option<Box<[JsValue]>> { None } #}
JavaScript 用法範例
import {
take_boxed_js_value_slice_by_value,
return_boxed_js_value_slice,
take_option_boxed_js_value_slice,
return_option_boxed_js_value_slice,
} from './guide_supported_types_examples';
take_boxed_js_value_slice_by_value([null, true, 2, {}, []]);
let values = return_boxed_js_value_slice();
console.log(values instanceof Array); // true
take_option_boxed_js_value_slice(null);
take_option_boxed_js_value_slice(undefined);
take_option_boxed_js_value_slice([1, 2, 3]);
let maybeValues = return_option_boxed_js_value_slice();
if (maybeValues == null) {
// ...
} else {
console.log(maybeValues instanceof Array); // true
}