Ruby 每个方法中的 ArgumentError
Ruby ArgumentError in Each Method
Ruby 新手在这里学习 each
全栈在线程序 Bloc 中的方法和循环。这个具体问题已经讨论 ,但我收到的错误消息与 post 不同,我不确定为什么。
在说明中,class StringModifier
"takes a string on initiation"和实例方法proclaim
"splits the string into an array of separate words, adds an exclamation mark to each, then joins them back together with spaces and returns the new string."
我一直在 irb 中收到错误 ArgumentError
wrong number of arguments (0 for 1)
。我不确定我在哪里 而不是 声明一个参数。这不是初始化 string
变量的目的吗?这是我关于 SO 的第一个问题,因此任何帮助或指向正确方向的观点都将不胜感激。下面的代码和规范脚本:
class StringModifier
attr_accessor :string
def initialize(string)
@string = string
end
def proclaim(string)
new_array = []
string.each do |x|
new_array << "#{x.split(' ').join('!')}"
end
new_array
end
end
这是规范脚本:
describe StringModifier do
describe "#proclaim" do
it "adds an exclamation mark after each word" do
blitzkrieg_bop = StringModifier.new("Hey ho let's go").proclaim
expect(blitzkrieg_bop).to eq("Hey! ho! let's! go!")
end
end
您的 proclaim
方法需要再次传入字符串。这不是必需的,因为您已经在初始化时存储了字符串。您的代码似乎也包含一些问题并且可以简化。试试这个:
class StringModifier
attr_accessor :string
def initialize(string)
@string = string
end
def proclaim
@string.split(' ').join('! ').concat('!')
end
end
这对我有用。我正在自己学习 Bloc Ruby 课程。
class StringModifier
attr_accessor :string
def initialize(string)
@string = string
end
def proclaim
new_array = []
string.split.each do |word|
new_array << "#{word}!"
end
new_array.join(" ")
end
end
Ruby 新手在这里学习 each
全栈在线程序 Bloc 中的方法和循环。这个具体问题已经讨论
在说明中,class StringModifier
"takes a string on initiation"和实例方法proclaim
"splits the string into an array of separate words, adds an exclamation mark to each, then joins them back together with spaces and returns the new string."
我一直在 irb 中收到错误 ArgumentError
wrong number of arguments (0 for 1)
。我不确定我在哪里 而不是 声明一个参数。这不是初始化 string
变量的目的吗?这是我关于 SO 的第一个问题,因此任何帮助或指向正确方向的观点都将不胜感激。下面的代码和规范脚本:
class StringModifier
attr_accessor :string
def initialize(string)
@string = string
end
def proclaim(string)
new_array = []
string.each do |x|
new_array << "#{x.split(' ').join('!')}"
end
new_array
end
end
这是规范脚本:
describe StringModifier do
describe "#proclaim" do
it "adds an exclamation mark after each word" do
blitzkrieg_bop = StringModifier.new("Hey ho let's go").proclaim
expect(blitzkrieg_bop).to eq("Hey! ho! let's! go!")
end
end
您的 proclaim
方法需要再次传入字符串。这不是必需的,因为您已经在初始化时存储了字符串。您的代码似乎也包含一些问题并且可以简化。试试这个:
class StringModifier
attr_accessor :string
def initialize(string)
@string = string
end
def proclaim
@string.split(' ').join('! ').concat('!')
end
end
这对我有用。我正在自己学习 Bloc Ruby 课程。
class StringModifier
attr_accessor :string
def initialize(string)
@string = string
end
def proclaim
new_array = []
string.split.each do |word|
new_array << "#{word}!"
end
new_array.join(" ")
end
end