我在初始化固定长度数组时遇到问题. 到目前为止,我的尝试都导致了"使用可能未初始化的变量:foo_array"错误:
#[derive(Debug)]
struct Foo { a: u32, b: u32 }
impl Default for Foo {
fn default() -> Foo { Foo{a:1, b:2} }
}
pub fn main() {
let mut foo_array: [Foo; 10];
// Do something here to in-place initialize foo_array?
for f in foo_array.iter() {
println!("{:?}", f);
}
}
Run Code Online (Sandbox Code Playgroud)
error[E0381]: use of possibly uninitialized variable: `foo_array`
--> src/main.rs:13:14
|
13 | for f in foo_array.iter() {
| ^^^^^^^^^ use of possibly uninitialized `foo_array`
Run Code Online (Sandbox Code Playgroud)
我实现了Default …
我想相信刷新浏览器窗口或选项卡不会泄漏。不幸的是,就 WebAssembly 而言,情况似乎并非如此。
我用 Rust 构建了一个 WebAssembly 板条箱。crate 的编译大小约为 360 Kb(在内容压缩之前),并且 crate 在 Firefox 甚至 iOS 上的 Safari 中都可以正常工作。但是,我在 Chrome 中遇到了很多问题,其中之一是刷新使用.wasm最终导致控制台内存不足错误的页面。
该页面在大约 35 次刷新后正常工作,然后抛出以下内容:
Uncaught (in promise) RangeError: WebAssembly Instantiation: Out of memory: wasm memory
Run Code Online (Sandbox Code Playgroud)
在此之后,该选项卡没有用,但打开一个新选项卡并加载页面按预期工作——同样,大约前 35 次刷新。
这是浏览器中的错误还是我在代码中做错了什么?如果它是一个错误,有什么办法可以解决它吗?(并不是说我希望它会在生产中表现出来,但无论如何......)
(据推测,错误消息中提到的承诺是 返回的import('...')那个。我正在使用 webpack,所以我受到了https://github.com/webpack/webpack/issues/6615 的影响)