在Ruby中,定义一个方法的首选方式(更好的风格)是什么?

4
什么样的风格更好:

下面是一些常见的编码风格:

def method; some code end

或者

def method() some code end

为什么?

7
如果你问我,首选的方法是用几行来定义它(我甚至会说至少3行)。 - Romain
我建议阅读链接问题中提到的一些风格指南:http://stackoverflow.com/questions/616037/ruby-coding-style-guidelines - the Tin Man
3个回答

9
首选方法是不要像@Romain所说的那样在一行中定义一个方法。请参照以下内容:

最好不要在一行中定义方法,就像@Romain所说的那样。

def method
  some code
end

2

有些人在只写单行代码块时使用{}而不是begin; end

也许这适合您的需求:

class A
    define_method(:method_name) { |arg1, arg2| do_something }
end

0

在文档中定义一个方法应该只在文档中进行,否则将其拆分为三行:

def method
    some code
end

如果你发现有很多一行代码的方法(例如 getter 和 setter),那么可以使用许多元编程技术(例如使用 define_method)来减少重复。例如,你可以使用 :attr_accessor 来定义许多 getter 和 setter:
class Person
    # defines name, name=, age, age=, ...
    attr_accessor :name, :age, :blood_type
end

这里有一个关于Ruby的论坛,讨论了这个问题。我也强烈推荐阅读《Ruby元编程》。它有很多好东西,比如三四种解决问题的方法,以及许多其他减少重复的技巧。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接