1

我理解该行的第一部分,但我不确定 || 之后的部分是什么 做。谁能告诉我如何将此行转换为c#?

var g = grid[iy * gw + ix] || [];

原始来源在这里。 http://www.dhteumeuleu.com/aqualibrium/source

4

2 回答 2

2

这是逻辑或,但基本上等同于 C# 的null-coalescing operator??。它解析到左边,如果左边是 ,则解析到右边false

需要注意的是,由于 Javascript 的动态类型,情况不像 C# 中那样明确。强制将||左侧值转换为布尔值,并且有多种值最终将转换为false. 例如,Javascript 会将所有这些评估为“其他”:

* false || 'other';
* 0 || 'other';
* '' || 'other';
* undefined || 'other';
于 2013-07-26T22:48:44.737 回答
0

正如评论 || 相当于 c# 中的合并运算符 ??。而 [] 是一个空数组。

在这种情况下grid是粒子数组的数组。C# 等效代码为:

// Particle[][] grid = ...

Particle[] g = grid[iy * gw + ix] ?? new Particle[];
于 2013-07-26T23:44:51.107 回答