什么是更好的风格:
def method; some code end
或
def method() some code end
为什么?
答案 0 :(得分:9)
首选方法是不在一行中定义方法,如@Romain所说。
def method
some code
end
答案 1 :(得分:2)
有人在仅在一行上编写块时使用{}
而不是begin; end
。
也许这符合您的需求:
class A
define_method(:method_name) { |arg1, arg2| do_something }
end
答案 2 :(得分:0)
在一行上定义方法只能在文档中完成,否则将其拆分为三行:
def method
some code
end
如果您发现自己有很多单行方法(即getter& setter),可能会有许多元编程技术(例如使用define_method
)来减少重复。例如,您可以使用:attr_accessor
来定义许多getter&设置器:
class Person
# defines name, name=, age, age=, ...
attr_accessor :name, :age, :blood_type
end
Here是一个讨论这个问题的红宝石论坛。我还强烈建议您阅读Metaprogramming Ruby。它有很多好东西,比如3种或4种方法来解决你的问题以及许多其他减少重复的技术。