我正在使用initialize方法构建一个相当简单的Module :: Class。
module Encryption
class Caesar
def initalize(number)
@caesar_number = number
end
end
end
当我运行Encryption::Caesar.new(2)
时,我收到以下错误:
ArgumentError: wrong number of arguments (1 for 0)
from (irb):32:in `initialize'
from (irb):32:in `new'
from (irb):32
from /Users/yedidyaweiner/.rvm/rubies/ruby-2.1.3/bin/irb:11:in `<main>
如果我运行Encryption::Caesar.new
,它会成功创建该类的新实例。
为什么错误说它在initialize
方法中定义参数时不期望参数?
答案 0 :(得分:3)
initalize
拼写错误;它应该是initialize
。
module Encryption
class Caesar
def initialize(number)
@caesar_number = number
end
end
end
foo = Encryption::Caesar.new(2)
foo.inspect #=> #<Encryption::Caesar:0x1e05580 @caesar_number=2>