问题标签 [null-coalescing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2491 浏览

python - python中dict条目的空值合并

所以,我知道,在 Python 中我可以这样做:

...并且将分配'something else'variable_nameifother_variable是假的,否则将other_variable值分配给variable.

我可以用 dict 做一个简洁的类似的事情吗:

...或者不存在的键名总是会引发错误,导致它失败?

0 投票
3 回答
718 浏览

c# - 如何在 ActionResult ASP.NET Core 2.1 中使用空合并运算符

有人可以解释一下为什么我在以下方法的 null-coalescing 上遇到错误:


我不明白的是为什么第一个返回不需要任何演员就可以工作,而第二个单行空合并不起作用!

我的目标是 ASP.NET Core 2.1


编辑:感谢@Hasan@dcastro的解释,但我不建议在这里使用空合并,因为在NotFound()转换后不会返回正确的错误代码!

p>

0 投票
1 回答
133 浏览

dart - 缺少 Dart 空值检查速记?

我知道 Dart 有空检查速记

但是如果我有这样的声明怎么办

我不想传递nullSomeClass构造函数 - 所以在那种情况下我想x设置为z(在我的具体情况下z恰好是null)。

我不知道在这种情况下如何/是否可以使用任何速记,或者我是否坚持直接空检查。

0 投票
2 回答
574 浏览

c# - Null-coalescing out 参数给出意外警告

使用此构造:

我收到一条错误消息,说CS0165 use of unassigned local variable 'value'这不是我所期望的。怎么value可能是未定义的?如果字典为 null,则内部语句将返回false,这将使外部语句评估为 false,返回Default.

我在这里想念什么?仅仅是编译器无法完全评估该语句吗?还是我以某种方式搞砸了?

0 投票
5 回答
186 浏览

php - 增加不存在的数组元素,恕不另行通知

我想增加一个数组的值,它可能还不存在。

问题

这会导致NOTICE

试图

我找到了一种方法来做到这一点,但它有点笨拙

问题

有没有更人类可读/优雅的方式来做到这一点?

0 投票
3 回答
1060 浏览

javascript - 在 vue.js 中绑定时如何有效地显示文本而不是 null?

在下面的代码site中可以为null,但如果存在,则company不会为null。当这些行中的 1000 行可以很好地扩展为 null时,如何有效地显示“-” ?site

我可以做一个方法来做到这一点:

但如果可以内联或使用过滤器会更好。

0 投票
2 回答
1753 浏览

c# - ?? 或 .GetValueOrDefault()

我有属性类型int?decimal?并且正在计算中使用。如果其中任何一个的值为 null,则它必须默认为 0。我正在尝试在使用 null-coalescing 或GetValueOrDefault()如果值为null. 哪种方法在可读性和性能方面会更好(如果有任何明显的差异)?

第一的:

第二:

0 投票
5 回答
26366 浏览

c# - c# if not null then assign value的简写

现在 c# 中是否有任何简写可以减少以下代码:

在这种情况下,如果 testVar1 从 CheckObject() 结果中不为空,则只想分配 testVar2(testVar2 有一个将触发代码的设置器)。试图思考如何使用空合并的东西,但没有真正解决。

添加到这个 testVar2 的 setter 上有代码可以触发,所以如果值为 null,不希望 testVar2 被设置为任何值。

0 投票
1 回答
96 浏览

c# - 初始化属性、if 中的 null 检查或合并哪个更有效?

我一直在努力使一些代码更高效,现在我想知道哪种模式更高效。由于遗留原因,该解决方案在 VB.NET 和 C# 中都有代码。

我已经放入了我们拥有的两种方法的 VB 和 C# 版本。

这个想法是,如果Foo属性被访问并且_foo为空,那么它将被设置为一个新对象,并且任何后续请求都将访问同一个对象,而不是每次都创建一个新对象。

我知道编译器和 JIT 在引擎盖下做了一些聪明的事情,但我不确定哪种方式更有效。

选项 1:合并价值。Visual Studio 一直在推荐一些地方的合并,所以这让我觉得这个操作已经很优化了。但是,_foo每次我们获得Foo 选项 2 时都会分配给:进行比较,_foo然后null_foo在需要时分配给。

我敢肯定两者在速度上几乎没有任何区别,但我很好奇这些在低得多的水平上是如何处理的

0 投票
3 回答
608 浏览

python - Python中的多参数空合并和内置“或”函数

Python 有一个很好的 null 合并语法:

这设置caif ais not False, None, empty, 或0, elsec设置为b

(是的,从技术上讲,这不是空合并,它更像是bool合并,但对于这个问题来说它已经足够接近了。)

对于对象集合没有明显的方法来执行此操作,因此我编写了一个函数来执行此操作:

这行得通,但写我自己的or_func似乎不是最理想的——肯定有一个内置的 like __or__?我尝试使用object.__or__and operator.__or__,但第一个给出 an AttributeError,第二个指的是按位|(或)运算符。

结果我有两个问题:

  1. 是否有一个类似的内置函数a or b
  2. 是否有这种空合并函数的内置实现?

两者的答案似乎是否定的,但这对我来说有点令人惊讶。