Ruby 显示为对象而不是字符串的新类项
我对Ruby还是非常陌生。我参加了一门关于编解码器的课程,目前我正在做“期末考试”,我必须列一张待办事项清单 todo列表的一部分是能够添加任务(显然)。另一部分是能够显示所有当前任务。现在,从技术上讲,这两种方法都起作用了。但是,当我使用我创建的类(task)创建一个新任务,然后显示任务时,它会显示对象ID而不是字符串。如果我只使用add方法而不使用Task类,它也会显示我想要的字符串 我的目标是让脚本在使用Task类时显示字符串。如果有人能向我解释为什么它不工作,以及我如何修复它,我将不胜感激 代码如下:Ruby 显示为对象而不是字符串的新类项,ruby,Ruby,我对Ruby还是非常陌生。我参加了一门关于编解码器的课程,目前我正在做“期末考试”,我必须列一张待办事项清单 todo列表的一部分是能够添加任务(显然)。另一部分是能够显示所有当前任务。现在,从技术上讲,这两种方法都起作用了。但是,当我使用我创建的类(task)创建一个新任务,然后显示任务时,它会显示对象ID而不是字符串。如果我只使用add方法而不使用Task类,它也会显示我想要的字符串 我的目标是让脚本在使用Task类时显示字符串。如果有人能向我解释为什么它不工作,以及我如何修复它,我将不胜感
## Classes ##
#List Class - Used for anything involving the list
class List
attr_reader :all_tasks
def initialize
@all_tasks = []
end
def add(task)
all_tasks << task
end
def show
all_tasks
end
end
#Task Class - Used for anything involving Tasks
class Task
attr_reader :description
def initialize(description)
@description = description
end
end
## Modules ##
module Promptable
def prompt(message = "What would you like to do?", symbol = " >: ")
print message
print symbol
gets.chomp
end
def show
menu
end
end
module Menu
def menu
puts "
'add' - Add a task to the list \n
'delete' - Delete a task from the list \n
'update' - Update a task in the list \n
'show' - Shows current tasks in list"
end
end
#Methods - various methods
#Program Runner
if __FILE__ == $PROGRAM_NAME
include Menu
include Promptable
my_list = List.new
puts "Please choose from the following list: "
until ['q'].include?(user_input = prompt(show).downcase)
case user_input
when 'add'
puts "What task would you like to do?"
my_list.add(Task.new(gets.chomp))
when 'q'
puts "Qutting...."
when 'show'
puts my_list.show
else "That is not a valid command"
end
end
end
##类##
#List类-用于与列表相关的任何内容
班级名单
属性读取器:所有任务
def初始化
@所有_任务=[]
结束
def添加(任务)
所有任务
将逐个显示任务。由于Task
类没有to\s
方法,因此将使用默认方法。只需添加一个:
class Task
# ...
alias to_s description
end
顺便说一句,字符串也是对象。Ruby中几乎所有的东西都是对象
将逐个显示任务。由于Task
类没有to\s
方法,因此将使用默认方法。只需添加一个:
class Task
# ...
alias to_s description
end
顺便说一句,字符串也是对象。Ruby中几乎所有的东西都是对象。很高兴知道!非常感谢你!很高兴知道!非常感谢你!