action&.!=:click
有人可以向我解释一下这在红宝石中是什么意思,我可以在哪里得到一些解释?我尝试搜索ruby文档,但没有运气这种“链接”运算符
:click
是符号
!=
不相等
但我不知道&.
答案 0 :(得分:2)
看起来中间的一个运算符(:click
)实际上是1个运算符和1个方法调用:&.
后跟!=
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)
甚至:
LOAD CSV WITH HEADERS FROM 'file:///C:/citylist2.csv' as line fieldterminator ','
MERGE (c1:City {id: line.`Origin City`})
MERGE (c2:City {id: line.`Destination City`})
MERGE (c1)-[r:SALES{id: line.Route, sales: line.Sales}]->(c2);