TL; DR来年はブーツキャンプに行くつもりですが、その評価はルビーを学ぶことになります。私はJSの背景を持っており、Rubyにはとても新しいです。私はこの評価をしています。その場合、私はテストが私に何をしたいのかよく知らないのです。以下はテストケース(Rspec)で、そのすぐ下に私の答えがあります。このRspec構文は正確に何を求めていますか?
describe "some silly block functions" do
describe "reverser" do
it "reverses the string returned by the default block" do
result = reverser do
"hello"
end
expect(result).to eq("olleh")
end
it "reverses each word in the string returned by the default block" do
result = reverser do
"hello dolly"
end
expect(result).to eq("olleh yllod")
end
end
これが私の答えコードです:私はルビーに新しいですし、降伏のアイデアは、JSのためのコールバック関数のようなものである上述したように
def reverser sentence
words = sentence.split(" ")
result = []
words.length.times do |i|
result.push(yield(words[i]))
end
result.join(" ")
end
reverser("hello dolly") {|n| n.reverse} #=> 'olleh yllod'
。私は、テストケースが私に書いて欲しいと思っているコードを調べるのに苦労しています。これは、 'デフォルトブロックによって返された文字列内の各単語を逆転させる'という文から、単語が逆転している関数の外にブロックを作成したことを示しています。助言を与えることができる人からの助けと指導に感謝します。
これは本当に興味深い解決策です。私は本当に 'result = reserver {" hello dolly "}"がテストケースの入力であるとは考えていませんでした。徹底的な説明をありがとう! – Ken