首页 > 解决方案 > 类语句的奇怪输出

问题描述

我正在尝试将 3 个值放入数组的每个索引中。这些值适用于classassignmentgrade。它们来自一个名为 的类对象Grade_Log

我遇到了输出问题。

class Grade_Log
  attr_accessor :which_class, :assignment_type, :grade
  def initialize(which_class, assignment_type, grade)
    @which_class = which_class
    @assignment_type = assignment_type
    @grade = grade
  end
end

#values are assigned to add_class, add_assignment, and add_grade

  grade_index[grade_index_tally] = Grade_Log.new(add_class,add_assignment,add_grade)

  puts grade_index[grade_index_tally]

我希望它输出,例如,"PHYSICS, HOMEWORK, 95"但我得到以下内容。#<Grade_Log:0x0000000002baaa20>

标签: ruby

解决方案


如果您希望能够创建类puts的实例,则Grade_Log需要to_s为您的类定义。现在,它很可能使用默认to_s方法。

我想你会想要这样的东西:

class Grade_Log
  ... # your code 

  def to_s
    "#{which_class}, #{assignment_type}, #{grade}"
  end
end

这基本上与以下内容相同:

def to_s
  [which_class, assignment_type, grade].join(', ')
end

推荐阅读