相关疑难解决方法(0)

如何创建一个全局的,可变的单例?

在系统中只创建一个实例的结构创建和使用的最佳方法是什么?是的,这是必要的,它是OpenGL子系统,制作多个副本并将其传递到各处会增加混乱,而不是减轻它.

单身人士需要尽可能高效.似乎不可能在静态区域上存储任意对象,因为它包含Vec带有析构函数的对象.第二个选项是在静态区域存储(不安全)指针,指向堆分配单例.什么是最方便和最安全的方法,同时保持语法简洁.

rust

97
推荐指数
3
解决办法
3万
查看次数

如何在用 Rust 编写的 WebAssembly 模块中保持内部状态?

我想对网络应用程序的每一帧的大量数据进行计算。JavaScript 只会使用其中的一个子集,因此与其在 WebAssembly 和 JavaScript 之间来回发送每一帧的整个数据集,不如在我的 WebAssembly 模块内部维护数据。

在 C 中,类似这样的工作:

#include <emscripten/emscripten.h>

int state = 0;

void EMSCRIPTEN_KEEPALIVE inc() {
    state++;
}

int EMSCRIPTEN_KEEPALIVE get() {
    return state;
}
Run Code Online (Sandbox Code Playgroud)

在 Rust 中可以做同样的事情吗?我尝试这样做static

static mut state: i32 = 0;

pub fn main() {}

#[no_mangle]
pub fn add() {
    state += 1;
}

#[no_mangle]
pub fn get() -> i32 {
    state
}
Run Code Online (Sandbox Code Playgroud)

但似乎static变量不能是可变的。

rust webassembly

7
推荐指数
2
解决办法
1384
查看次数

标签 统计

rust ×2

webassembly ×1