【问题标题】:What does &.!= mean in Ruby? [duplicate]&.!= 在 Ruby 中是什么意思? [复制]
【发布时间】:2023-03-15 23:03:02
【问题描述】:
action&.!=:click

有人可以向我解释一下这在 ruby​​ 中是什么意思吗?我在哪里可以得到一些解释?我尝试搜索 ruby​​ 文档,但这种“链接”运算符没有运气

:click 是符号

!= 不相等

但我不知道&.

【问题讨论】:

标签: ruby


【解决方案1】:

中间的一个运算符 (&.!=) 实际上是 1 个运算符和 1 个方法调用:&. 后跟 !=:click 作为参数:

action &. != :click

它检查action 是否不是nil 但不同于:click

action = nil
action&.!=:click
# => nil

action = :not_click
action&.!=:click
# => true

action = :click
action&.!=:click
# => false

action = false
action&.!=:click
# => true

在我看来,这是一种滥用&. 的方式。 &. 被称为“安全导航运算符”,因为它可以防止您在 nil 对象上调用未定义的方法。

!= 是为任何对象定义的,因此在!= 之前使用&. 并不安全。

你可以写:

!(action.nil? || action == :click)

!action.nil? && action != :click

甚至:

![nil, :click].include?(action)

【讨论】:

  • 等等,你的答案是如何通过 dup close 的?
  • 在我关闭它之前开始作曲了吗?
  • "实际上是 2 个操作符" - 实际上 它是一个操作符和一个方法调用 :) 如果我们将 &. 算作操作符,那就是。
猜你喜欢
  • 2014-04-09
  • 2011-04-17
  • 2011-07-27
  • 2014-11-07
  • 2011-07-10
  • 2016-08-17
  • 2020-10-27
  • 2015-07-15
  • 2018-07-17
相关资源
最近更新 更多