致力于在Ruby中创建一个小命令行脚本,用户提供与餐馆相关的一些信息,并返回计算信息.
目前我有以下代码:
class Restaurant
attr_accessor :name :type :avg_price
def initialize(name, type, avg_price)
@name = name
@type = type
@avg_price = price
end
end
Run Code Online (Sandbox Code Playgroud)
如果我们使用attr_accessors方法声明type,和price,name
为什么Initialize方法是必要的?这是因为我们需要为其设置输入值吗?
在代码中有一个叫做RestaurantList后跟的子类< Array.这是什么功能?
代码中没有定义Array类?它是ruby中的内置类Array吗?如果是这样,它到底是做什么的?
该attr_accessor方法是一种捷径,用于声明方法中块外可访问的变量.
该initializer红宝石的方法是,当有人初始化一个类,即东西要调用的方法chipotle = Restaurant.new 'Chipotle', 'Mexican', 8.00
Array确实是一个内置于Ruby中的类,(内置类通常称为Ruby标准库,请参阅此处有关类的MRI 1.9.3文档Array.您不需要进行任何类型的特殊继承以便使用Array尽管如此.语言是在一个庄园中定义的,这样就不需要继承诸如字符串,哈希,数组和其他常用类之类的东西.
也就是说,这些都可以超载.当你发现看起来像阵列但具有替代功能的那一天时,不要感到惊讶.
当你接近Ruby编程时要记住的一件事是一切都是一个对象.你会经常听到这个,但是当你第一次潜水时很难理解,但仍然很重要的是要记住,所有东西都可以映射回ObjectRuby中的类,请参阅此处有关Object该类的文档.