【问题标题】:How to print class attribute from array?如何从数组中打印类属性?
【发布时间】:2021-12-09 20:06:08
【问题描述】:

假设我有这样的课程

class Date 
    attr_accessor :day, :month, :year
end

我为它创建了 3 条记录,并将每条记录添加到一个数组中。

class Date 
    attr_accessor :day, :month, :year
end

date = Date.new()
date.day = 31
date.month = 12
date.year = 2019
array = []
array << date

date = Date.new()
date.day = 30
date.month = 2
date.year = 2014
array << date

date = Date.new()
date.day = 23
date.month = 1
date.year = 2012
array << date

如果我想从数组的第三个记录/第三个元素中放入 date.day(或每个属性),我将如何访问它(如果我想打印它,或者在何时从不同的函数/过程访问它需要特定的用户输入)? puts array[2] 之类的东西显然是行不通的。

【问题讨论】:

  • 名称 Date 是一个非常糟糕的选择,因为它已经是 Ruby 标准库的一部分。
  • 嗯,好的。有没有办法预先查看 Ruby 标准库的一部分/检查它的方法?
  • 这有点棘手 - Date 直到您需要它时才真正定义。 Ruby 中有几个保留字列表,但我想检查名称冲突的唯一真正方法是搜索文档。

标签: arrays ruby class element record


【解决方案1】:

array[2] 将返回数组中的第三个元素。当你想打电话给day时,你可以写

puts array[2].day

如果您想打印数组中所有元素的日期,您可能需要这样做:

array.each do |element|
  puts element.day
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    相关资源
    最近更新 更多