我理解该行的第一部分,但我不确定 || 之后的部分是什么 做。谁能告诉我如何将此行转换为c#?
var g = grid[iy * gw + ix] || [];
我理解该行的第一部分,但我不确定 || 之后的部分是什么 做。谁能告诉我如何将此行转换为c#?
var g = grid[iy * gw + ix] || [];
这是逻辑或,但基本上等同于 C# 的null-coalescing operator??
。它解析到左边,如果左边是 ,则解析到右边false
。
需要注意的是,由于 Javascript 的动态类型,情况不像 C# 中那样明确。强制将||
左侧值转换为布尔值,并且有多种值最终将转换为false
. 例如,Javascript 会将所有这些评估为“其他”:
* false || 'other';
* 0 || 'other';
* '' || 'other';
* undefined || 'other';
正如评论 || 相当于 c# 中的合并运算符 ??。而 [] 是一个空数组。
在这种情况下grid
是粒子数组的数组。C# 等效代码为:
// Particle[][] grid = ...
Particle[] g = grid[iy * gw + ix] ?? new Particle[];