问题标签 [safe-navigation-operator]

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 投票
0 回答
34 浏览

c# - 返回包含安全导航运算符的语句结果为布尔值

我刚开始第一次在 C# 中使用安全导航运算符,我想知道这是否是该运算符的正确用例:

为什么这段代码没有给我编译器错误?我认为如果例如结果为 nullthis.Notification或为 null,则结果为this.Notification.Attributesnull,但return null另一方面不起作用,因为它似乎没有隐式转换为 false。如果我在这里没有正确使用运算符,有人可以解释我如何在我的用例中正确使用它吗?

0 投票
4 回答
295 浏览

ruby - 当接收器为 nil 时,Ruby 安全导航运算符是否评估其参数?

问题:

Ruby 安全导航运算符 ( &.) 是否在其接收器为 时评估其参数nil

例如:

  • "Something important happened..."字符串是否在这里评估?
  • 您能否提供一个权威来源,证明或否认这一事实?
  • 或者建议一种如何检查它的方法?

提前致谢。




为什么我要寻找这个问题的答案?

我在整个代码库中都有如下代码:

if verbose我的主要目标是在我调用该方法时删除重复检查,log因为它很容易忘记它,并且您根本不会收到有关误用的通知。

Tell启发,不问原则,

我已经在方法实现中移动了if verbose检查。log

if verbose这种方法简化了我的代码,因为我已经解决了我的主要问题 -每当我调用该log方法时,我都不需要记住放置,

但我收到了另一个问题。

"Something important..."string 总是被评估,无论verbosetrue还是false

因此,我完全改变了解决方案:

  • loggernil何时返回。verbose_false
  • Ruby 安全导航运算符应在log调用前使用。

结果,我将最初记住if verbose检查的问题替换为记住&.调用。

但是,无论如何,我认为这是一种改进,因为忘记使用安全导航操作符会引发NoMethodError,换句话说,通知log方法误用。

所以现在,为了确保“安全导航操作员方法”实际上是解决我的问题的“更好”选择,

我需要确切知道 Ruby 中的安全导航运算符是否在其接收器为nil.

0 投票
2 回答
84 浏览

angular - 版本 <3.7 的打字稿文件是否有安全导航运算符的替代品

我正在寻找安全导航运算符的替代品,因为我的打字稿版本是 3.2。如果我必须检查 3 到 4 个键,我的代码会变得非常冗长。

假设我想检查Obj.key1.key2,key3然后我的代码是这样的

0 投票
1 回答
36 浏览

ruby-on-rails - 在 Rails 中引用关系时使用 &

我正在阅读一本教程书,我遇到了一些我以前从未见过的东西。在 Rails 中,我习惯于获取这样的关系的值

这本书的作者&在这样做时使用了操作符,它似乎做了同样的事情(我相信我理解&操作符,我只是从未见过这样使用它)

对此没有任何解释,所以我认为它只是另一种编写方式,但在使用 Rails 和阅读书籍/教程的多年中,我从未见过这种情况。

这样做有性能原因,还是只是个人喜好?

turbo_frame_tag如果这有什么不同的话,那就是在里面。