在Ruby中使用括号的习惯用法

dav*_*ers 18 ruby idiomatic parentheses

array.include? 'foo' or array.include? 'bar'
Run Code Online (Sandbox Code Playgroud)

是语法错误(意外的keyword_or).圆括号解决了这个问题,但由于我是Ruby的新手,我不知道以下哪一个被认为是更惯用的:

选项1

array.include?('foo') or array.include?('bar')
Run Code Online (Sandbox Code Playgroud)

选项2

(array.include? 'foo') or (array.include? 'bar')
Run Code Online (Sandbox Code Playgroud)

这取决于个人偏好,还是一种被认为更"正确"的方法?

Boz*_*sov 25

我建议你看一下社区驱动的Ruby编码风格指南,特别是关于语法的部分.

对于作为内部DSL(例如Rake,Rails,RSpec)一部分的方法的参数,在Ruby中具有"关键字"状态的方法(例如attr_reader,puts)和属性访问方法,省略括号.在所有其他方法调用的参数周围使用括号. - 摘自导游

class Person
  attr_reader :name, :age

  # omitted
end

temperance = Person.new('Temperance', 30)
temperance.name

puts temperance.age

x = Math.sin(y)
array.delete(e)
Run Code Online (Sandbox Code Playgroud)