Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 显示为对象而不是字符串的新类项_Ruby - Fatal编程技术网

Ruby 显示为对象而不是字符串的新类项

Ruby 显示为对象而不是字符串的新类项,ruby,Ruby,我对Ruby还是非常陌生。我参加了一门关于编解码器的课程,目前我正在做“期末考试”,我必须列一张待办事项清单 todo列表的一部分是能够添加任务(显然)。另一部分是能够显示所有当前任务。现在,从技术上讲,这两种方法都起作用了。但是,当我使用我创建的类(task)创建一个新任务,然后显示任务时,它会显示对象ID而不是字符串。如果我只使用add方法而不使用Task类,它也会显示我想要的字符串 我的目标是让脚本在使用Task类时显示字符串。如果有人能向我解释为什么它不工作,以及我如何修复它,我将不胜感

我对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中几乎所有的东西都是对象。

很高兴知道!非常感谢你!很高兴知道!非常感谢你!