获取空数组的第一个元素

时间:2016-04-06 15:57:38

标签: crystal-lang

给定一个具有零个或一个元素的数组,如何返回第一个元素或nil?

我有工作代码,但不是很优雅:

class Category < ActiveRecord::Model
  adapter sqlite

  table_name "categories"

  primary id      : Int
  field parent_id : Int
  field name      : String

  # return a category or nil
  def self.root
    roots = where(criteria("parent_id").is_null)

    if roots.empty?
      nil
    else
      roots.first
    end⋅
  end
end

1 个答案:

答案 0 :(得分:3)

您只需在数组上调用first?

  def self.root
    where(criteria("parent_id").is_null).first?
  end