0

我刚刚完成了 Ruby 基本培训课程我想知道如何仅在可能的情况下使用命令行为 Restaurant Finder 编写一个非常简单的脚本?

所需功能:用户要求输入 1- 餐厅名称 2- 餐厅类型 3- 餐厅平均价格

用户在会话期间仅在内存中获取餐厅的响应列表(不会保存在文件中)。

另外我怎样才能让用户显示添加的餐厅列表?

我想让它尽可能简单,以便我能以 Lynda.com 讲师错过的方式理解语言。一旦这位讲师到达了实际的脚本构建,他就开始修改它并编写了许多让我感到困惑的快速代码,让我几乎觉得这是我正在观看的 PHP 而不是 Ruby 视频培训。

我知道如何创建类和方法以及使用数组哈希等...想要基本的简单开始尝试自己如何编写简单的程序而不使用文件来存储任何东西

之后,我将进入下一个级别。

谢谢。

4

1 回答 1

2

我也是 Ruby 的新手,但这是我的简单实现:

 class Restaurant
  attr_accessor :name, :type, :avg_price
   def initialize(name, type, avg_price)
     @name = name
     @type = type
     @avg_price = Float(avg_price)
   end   
 end

 class RestaurantsList < Array
  def read_from_keyboard
    print "Restaurant name: "
    name = gets.chomp
    print "Restaurant type: "
    type = gets.chomp
    print "Restaurant average price: "
    avg_price = gets.chomp
    self << Restaurant.new( name, type, avg_price )
  end
  def print_list
    puts sprintf("%17s %15s %s", "Name |", "Type |", "Avg price |")
    self.each { |e|  puts sprintf("%15s |%14s |%10d |", e.name, e.type, e.avg_price)}    
  end
 end

restaurants_list = RestaurantsList.new
loop do
  print "1 - add restaurant, 2 - print list, 3 - exit : "
  answer = Integer(gets.chomp)
  case answer
  when 1
    restaurants_list.read_from_keyboard
  when 2
    restaurants_list.print_list
  when 3
    break    
  end    
end
于 2012-07-27T08:40:29.137 回答