Ruby-参数数目错误(1/2)
问题是,当我试着用一种产品时,它是有效的,但用一种水果就不行了,并且出现了以下错误:Ruby-参数数目错误(1/2),ruby,Ruby,问题是,当我试着用一种产品时,它是有效的,但用一种水果就不行了,并且出现了以下错误: shoppingCart.rb:7:in `initialize': wrong number of arguments (1 for 2) (Argument Error) from shoppingCart.rb:21:in `initialize' from shoppingCart.rb:37:in `new' from shoppingCart.rb:3
shoppingCart.rb:7:in `initialize': wrong number of arguments (1 for 2) (Argument
Error)
from shoppingCart.rb:21:in `initialize'
from shoppingCart.rb:37:in `new'
from shoppingCart.rb:37:in `<main>'
shoppingCart.rb:7:in'initialize':参数数量错误(1代表2)(参数
(错误)
来自shoppingCart.rb:21:in'initialize'
来自shoppingCart.rb:37:in'new'
来自shoppingCart.rb:37:in`'
代码:
类产品
属性存取器:名称
属性存取器:价格
属性存取器:折扣
def初始化(名称、价格)
@name=name
@价格=价格
结束
def计算价格
把{@name}的价格定为{@price}欧元
结束
结束
类水果<产品
def初始化(名称、价格)
超级(姓名)
超级(价格)
结束
def折扣()
@折扣=10
结束
结束
香蕉=水果。新(“香蕉”,10)
香蕉冰
您有一个错误,因为您在水果#初始化
中使用一个参数调用超级
,但产品#初始化
使用两个参数。由于在Fruit#initialize
方法中不执行任何特定于Fruit
的操作,因此根本不需要此方法 您有一个错误,因为您在水果#初始化
中使用一个参数调用超级
,但产品#初始化
使用两个参数。由于在Fruit#initialize
方法中不执行任何特定于Fruit
的操作,因此根本不需要此方法 当您从Fruit#initialize
调用super
时,它调用的是Product#initialize
,它包含两个参数。因此,使用两个参数调用一次,而不是每个参数调用一次:
super(name, price)
由于这些参数与Fruit#initialize
本身所采用的参数相同,因此您也可以将它们关闭,以便自动传递相同的参数:
super
但是,由于您没有执行水果#初始化
中特定的水果
,因此可以完全删除该方法以获得相同的结果:
class Product
def initialize(name, price)
puts "Into Product#Initialize"
end
end
class Fruit < Product
end
banana = Fruit.new(banana, 10)
# Into Product#Initialize
# => #<Fruit:0x007f9da91cef00>
类产品
def初始化(名称、价格)
将“放入产品#初始化”
结束
结束
类水果<产品
结束
香蕉=水果。新的(香蕉,10)
#进入产品#初始化
# => #
当您从水果#初始化
调用超级
时,它调用的是产品#初始化
,它包含两个参数。因此,使用两个参数调用一次,而不是每个参数调用一次:
super(name, price)
由于这些参数与Fruit#initialize
本身所采用的参数相同,因此您也可以将它们关闭,以便自动传递相同的参数:
super
但是,由于您没有执行水果#初始化
中特定的水果
,因此可以完全删除该方法以获得相同的结果:
class Product
def initialize(name, price)
puts "Into Product#Initialize"
end
end
class Fruit < Product
end
banana = Fruit.new(banana, 10)
# Into Product#Initialize
# => #<Fruit:0x007f9da91cef00>
类产品
def初始化(名称、价格)
将“放入产品#初始化”
结束
结束
类水果<产品
结束
香蕉=水果。新的(香蕉,10)
#进入产品#初始化
# => #
不带任何参数调用super
也可以。太好了!它工作起来容易理解,下次我会更加小心。不带任何参数调用super
也会工作。太好了!这很有效,也很容易理解,下次我会更加小心。为什么人们会对此投反对票?即使措辞拙劣,也很清楚被问到了什么。我不明白为什么,我只是在学习如何用相同的例子来使用ruby。为什么人们对此投反对票?即使措辞拙劣,问题也很清楚。我不明白为什么,我只是在学习如何使用ruby和相同的例子。