gpt4 book ai didi

使用 attr_accessor 和初始化方法的 Ruby 类

转载 作者:数据小太阳 更新时间:2023-10-29 07:30:41 25 4
gpt4 key购买 nike

致力于用 Ruby 制作一个小的命令行脚本,其中用户提供一些与餐厅相关的信息,以及返回计算的信息。

目前我有以下代码:

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

问题一

如果我们使用 attr_accessors声明方法type , 和 price , 和 name为什么 Initialize 方法是必要的?这是因为我们需要设置给它输入值?

问题2

有一个子类叫做RestaurantList其次是 < Array在代码中。这是什么功能?

代码中没有定义Array类?它是一个名为 Array 的 ruby 内置类吗? ?如果是这样,它的具体作用是什么?

最佳答案

问题一

attr_accessor方法是声明变量可在外部访问的捷径方法中的 block 。

initializer ruby中的方法是有人初始化时要调用的方法那个类的东西,即chipotle = Restaurant.new 'Chipotle', 'Mexican', 8.00

问题2

Array确实是 Ruby 内置的类,(内置类通常称为 Ruby 标准库,请参阅 here 以获取关于 Array 类的 MRI 1.9.3 文档。您不需要进行任何类型的特殊继承不过,为了使用 Array 类。该语言是在庄园中定义的,因此不需要继承诸如字符串、哈希、数组和其他常用类之类的东西。

也就是说,这些可以重载。当您发现一些看起来像数组但具有替代功能的东西时,不要感到惊讶。

其他说明

在进行 Ruby 编程时要记住的一件事是,一切 都是对象。你会经常听到这个,但当你第一次潜水时很难理解,但仍然重要的是要记住 一切 都可以映射回 Object Ruby 中的类,请参阅 here有关 Object 的文档类。

关于使用 attr_accessor 和初始化方法的 Ruby 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11695364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com