问题标签 [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 投票
17 回答
429498 浏览

javascript - JavaScript 中是否有“空值合并”运算符?

Javascript中是否有空合并运算符?

例如,在 C# 中,我可以这样做:

我可以为 Javascript 找出的最佳近似值是使用条件运算符:

恕我直言,这有点恶心。我能做得更好吗?

0 投票
7 回答
70277 浏览

c# - C#中的双问号有什么作用?

可能的重复:
?? 空合并运算符 --> 合并是什么意思?
在 C# 中,两个问号一起意味着什么?

我在这里找不到这个问题,所以我想我会问。C#中的双问号有什么作用?

例子:

0 投票
5 回答
540 浏览

c# - 您如何看待 C# 中的 ??= 运算符?

你认为 C# 会支持 ??= 运算符吗?

而不是这个:

或许可以写成:

现在,我可以使用(但在我看来不太可读):

0 投票
2 回答
1933 浏览

c# - IEnumerable空合并扩展

IEnumerable<T>在通过 foreach 或 LINQ 查询迭代它之前,我经常遇到检查 an 是否为 null 的问题,然后我经常遇到这样的代码:

因此,我想将此扩展方法添加到扩展类中:

看到这段代码,我立刻想到了一个小问题,即,鉴于扩展方法的“实例方法方面”,它应该作为一个静态方法来实现,否则这样的事情将是完全合法的:

您在使用它时看到任何其他缺点吗?
如果大量使用,这种扩展是否会导致开发人员出现某种不良趋势?


奖金问题:

你能给它推荐一个更好的名字吗? :)
(英语不是我的母语,那我的命名不太好……)

提前致谢。

0 投票
3 回答
824 浏览

c# - C# 合并运算符不会替换 null 方法返回值?

我有这个代码:

这是方法:

所以FirstOrDefault()在实体框架上下文中没有找到命中,即“ctx”对象。所以要返回的“默认”值是null,因为查询的目标是一个类。

使用 , 的第一位代码的??结果_localMyClass是什么?我会说这将是new MyClass(). 相反,_localMyClass最终为空。我尝试用各种括号对逻辑进行分组,但仍然没有运气。

更奇怪的是;当我设置调试断点并将 复制/粘贴MyClassDAO.GetMyClassByID(123) ?? new MyClass()到 Visual Studio 的监视屏幕中时,结果是new MyClass()而不是null.

谁能解释为什么它会以这种方式工作?为什么它不将方法返回值识别为null然后使用该new部分?

0 投票
2 回答
11626 浏览

postgresql - Postgresql COALESCE 性能问题

我在 Postgresql 中有这张表:

my_table 中有 ~50000 行。

问题是,为什么要查询:

比这个慢:

除了优化应用层中的查询字符串之外,还有什么解决方案吗?

编辑:实际上,问题是如何重写查询select * from my_table where id=coalesce(?, id) and value=?以使最坏情况下的性能不低于select * from my_table where value=?Postgresql 9.0中的性能

0 投票
10 回答
4899 浏览

c# - 检查空字符串属性的函数?

我有一个具有string属性的对象,例如,一个具有重量和高度的患者对象。

但是当属性为空时,当我尝试使用它时,我的代码会失败,因为属性设置为空。我正在尝试创建一个函数来检查字符串/属性是否为空,如果是,请将属性设置为"".

我知道我可以这样做:

但是我需要代码尽可能的干净,而且我有很多属性,所以我不想手动检查每一个。理想情况下,我希望有一个可以获取字符串的函数(即使它为空也不会失败),并且如果它不为空则简单地返回值,或者""如果它为空则返回一个值。

谁能给我一个线索?

0 投票
1 回答
493 浏览

c# - 将空合并运算符与比较一起使用

给定方法:

是否可以重写 if 语句以使其使用空合并运算符?

0 投票
9 回答
399 浏览

c# - C# 合并运算符抛出

我有一个带有字符串属性的类。我在读取它时使用了合并运算符,因为它可能为空,但它仍然给我一个 NullRefrenceExeption。

更具体地说,它的“.ParentSection”是空的,是不是因为它甚至没有“.name”?如果是这种情况,我应该先用 if 块测试“.ParentSection”吗?

我认为 Coalesce 运算符有一些我不明白的地方,希望有人能解释一下这里出了什么问题。

0 投票
3 回答
41685 浏览

mysql - 如果未找到单行,则返回默认值

我有以下选择语句来获取流的下一个预定项目。如果没有匹配的行,我希望它返回一个默认值。这是我正在使用的 SQL:

这应该抓取最近安排的项目,但如果它在查询前 30 分钟以上则不会。

但是,如果用户没有安排任何事情,我想要一个默认值,以便在流上实际播放一些东西。我尝试了以下方法:

但是,如果没有找到任何行,它总是返回一个空结果。我怎样才能返回一个默认值呢?