首页 > 解决方案 > 如何创建一个用字符串和整数属性初始化的 ruby​​ 类和数组?

问题描述

我正在尝试创建一个 ruby​​ 类,该类使用具有 和 属性的产品数组进行name[String]初始化rating[Integer]。我有一段时间没有直接做红宝石了,我很难过。

我希望这个类的实例能够

目标也是编写脚本,但我记得如何做到这一点。只需要关于如何设置课程的建议。

标签: rubyclassmethods

解决方案


您应该能够使用initialize将分配提供的产品数组的方法设置一个类:

class ProductStats
  def initialize(products)
    @products = products
  end
end

从那里,您可以在类上创建实例方法,以获得最高评分的产品、平均评分以及您需要的任何其他方法:

class ProductStats
  def initialize(products)
    @products = products
  end

  def highest_rated
    @products.max_by { |product| product[:rating] }
  end
end

然后,您可以使用您的产品初始化一个实例:

product_stats = ProductStats.new([
  { name: "Socks", rating: 1 },
  { name: "Jacket", rating: 2 },
  { name: "Hat", rating: 3 }
])

product_stats.highest_rated
# => { :name=>"Hat", :rating=>3 }

出于演示目的,这假定“产品”是一个简单的 Hash 对象,但如果产品是不同类(例如Product或类似)的实例,则适用相同的核心原则。


推荐阅读