我正在努力学习红宝石。 我被困在第26课。Here是该文件的链接。这是错误所在的代码片段:
five = 10 - 2 + 3 - 6
puts "This should be five: #{five}"
def secret_formula(started)
jelly_bens = started * 500
jars = jelly_beans / 1000
crate = jars / 100
return jelly_beans, jars, crates
end
start_point = 10000
beans, jars, crates = secret_formula(start_point)
这是控制台上的错误
ex26.rb:77:in `<module:Ex25>': undefined method `secret_formula' for Ex25:Module (NoMethodError)
from ex26.rb:1:in `<main>'
答案 0 :(得分:2)
变量声明中有一些拼写错误。首先,您有jelly_bens
(缺少“a”)而不是jelly_beans
。其次,您有crate
(单数)而不是crates
(复数)。一旦修复,代码就会正确执行:
five = 10 - 2 + 3 - 6
puts "This should be five: #{five}"
def secret_formula(started)
jelly_beans = started * 500
jars = jelly_beans / 1000
crates = jars / 100
return jelly_beans, jars, crates
end
start_point = 10000
beans, jars, crates = secret_formula(start_point)
答案 1 :(得分:1)
您的代码中有很多拼写错误,修复后会出现更多错误。至于它,您在ed
行键入了end
而不是30
,并且应该删除文件末尾的end
。
答案 2 :(得分:0)
无法在其他任何地方找到这个答案,所以我的解决方法如下:
本练习中def secret_formula(started)
与其他def
之间的区别在于它们以模块名称开头:def Ex26.break_words(stuff)
因此,您可以在此处将问题行重写为def Ex26.secret_formula(started)
现在应该可以了。
答案 3 :(得分:0)
我认为你错过了 self &#34; secret_formula&#34;功能声明。 这是我练习的代码。
module Ex25
# This function will break up words for us.
def Ex25.break_words(stuff)
words = stuff.split(' ')
return words
end
# Sorts the words.
def Ex25.sort_words(words)
return words.sort
end
# Prints the first word after popping it off.
def Ex25.print_first_word(words)
word = words.pop(0)
puts word
end
# Prints the last word after popping it off.
def Ex25.print_last_word(words)
word = words.pop()
puts word
end
# Takes in a full sentence and returns the sorted words.
def Ex25.sort_sentence(sentence)
words = Ex25.break_words(sentence)
return Ex25.sort_words(words)
end
# Prints the first and last words of the sentence.
def Ex25.print_first_and_last(sentence)
words = Ex25.break_words(sentence)
Ex25.print_first_word(words)
Ex25.print_last_word(words)
end
# Sorts the words then prints the first and last one.
def Ex25.print_first_and_last_sorted(sentence)
words = Ex25.sort_sentence(sentence)
Ex25.print_first_word(words)
Ex25.print_last_word(words)
end
puts "Let's practice everything."
puts 'You\'d need to know \'bout escapes with \\ that do \n newlines and \t tabs.'
poem = <<END
\tThe lovely world
with logic so firmly planted
cannot discern \n the needs of love
nor comprehend passion from intuition
and requires an explanation
\n\t\twhere there is none.
END
puts "--------------"
puts poem
puts "--------------"
five = 10 - 2 + 3 - 6
puts "This should be five: #{five}"
def self.secret_formula(started)
jelly_beans = started * 500
jars = jelly_beans / 1000
crates = jars / 100
return jelly_beans, jars, crates
end
start_point = 10000
beans, jars, crates = Ex25.secret_formula(start_point)
puts "With a starting point of: #{start_point}"
puts "We'd have #{beans} beans, #{jars} jars, and #{crates} crates."
start_point = start_point / 10
sentence = "All good things come to those who wait."
words = Ex25.break_words(sentence)
sorted_words = Ex25.sort_words(words)
Ex25.print_first_word(words)
Ex25.print_last_word(words)
Ex25.print_first_word(sorted_words)
Ex25.print_last_word(sorted_words)
sorted_words = Ex25.sort_sentence(sentence)
Ex25.print_first_and_last(sentence)
Ex25.print_first_and_last_sorted(sentence)
end