Ruby:处理多个回报的最佳方式

Hun*_*len 1 ruby

我在Ruby工作,并发现需要在我的一些/大部分方法结束时使用条件返回语句.

这是我有的:

 # <ident-list> -> [ident] <ident-A>
  def ident_list(keys)
    id = nil
    ident_a_node = nil

    ## method hidden

    return IdentifierListNode.new(id, ident_a_node) unless id.nil?
    return nil
  end
Run Code Online (Sandbox Code Playgroud)

有多种回报,是否有更好/更清洁的方式来解决这个问题?

Dav*_*acs 5

之前的最后一行end可以简单

IdentifierListNode.new(id, ident_a_node) unless id.nil?
Run Code Online (Sandbox Code Playgroud)

执行的最后一个语句是方法的返回值.如果id为nil,则语句将评估为nil,如果不为,则返回新的IdentifierListNode实例.