9
|
Jakob Mulvad Nielsen · 技术社区 · 7 年前 |
![]() |
1
7
Francis Gagné is absolutely correct 全局变量通常会使代码变得更糟糕,您应该避免使用它们。 然而,对于 具体的 WebAssembly的现状 今天 ,我们不必担心这个问题:
因此,如果我们有很好的理由这样做,我们可以选择使用可变静态变量:
我们可以看到这个NodeJS驱动程序的行为:
|
![]() |
2
5
通常,访问可变全局变量是
不安全的
,这意味着您只能在
全局变量通常不是问题的最佳解决方案,因为它会降低软件的灵活性和可重用性。相反,考虑将状态显式(通过引用,因此不需要复制)传递给需要对其进行操作的函数。这使调用代码可以处理多个独立状态。 下面是一个分配唯一状态并对其进行修改的示例:
笔记 此当前 需要 在发布模式下编译以工作。调试模式目前存在一些问题。 诚然,这不是 较少的 不安全,因为您正在传递原始指针,但它使调用代码中的某些可变状态被操纵变得更清楚。还请注意,现在由 呼叫者 以确保正确处理状态指针。 |