【问题标题】:What is the preferred way (better style) to define a method in one line in Ruby?在 Ruby 的一行中定义方法的首选方式(更好的风格)是什么?
【发布时间】:2011-11-25 14:31:30
【问题描述】:

哪种风格更好:

def method; some code end

def method() some code end

为什么?

【问题讨论】:

标签: ruby coding-style


【解决方案1】:

首选方法是像@Romain 所说的那样在一行中定义一个方法。

def method
  some code
end

【讨论】:

    【解决方案2】:

    有些人在只写一行时使用{}而不是begin; end

    也许这适合您的需求:

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

    【讨论】:

      【解决方案3】:

      在一行上定义方法只能在文档中完成,否则分成三行:

      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
      

      Here 是一个讨论这个问题的 ruby​​ 论坛。我也强烈推荐阅读Metaprogramming Ruby。它有很多好东西,比如 3 或 4 种解决问题的方法以及许多其他减少重复的技术。

      【讨论】:

        猜你喜欢
        • 2014-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-28
        • 1970-01-01
        • 2017-01-06
        • 1970-01-01
        相关资源
        最近更新 更多