如题,来自2.3.0 ruby版。我们可以使用安全导航运算符 (&.) 而不是尝试在 Rails 中处理 nil 值。 但是当我使用新语法时,我的审阅者告诉我这对审阅者或其他人来说对我的代码的含义不利。 所以我想知道在使用 nil 值时应该使用哪种语法?
nil.try(:method)
nil&.method
最佳答案
&.
的工作方式类似于#try!
,而不是#try
。 documentation#try
不是 ruby 原生的,但它是由 rails 提供的。- 安全导航
#&.
几乎比使用#try
快 3~4 倍
require 'active_support/all'
require 'benchmark'
foo = nil
puts Benchmark.measure { 10_000_000.times { foo.try(:boo) } }
puts Benchmark.measure { 10_000_000.times { foo&.boo } }
输出
1.210000 0.000000 1.210000 ( 1.211835)
0.360000 0.000000 0.360000 ( 0.363127)
关于ruby-on-rails - 在 try 和 and 之间推荐哪种语法。当我们在 Ruby on Rails 中处理 nil 值时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58364333/