我正在努力学习 Ruby,并且已经完成了 Zed Shaw 的 Learn Ruby the Hard Way 的大部分内容,但是这个最新的练习让我完全难过。这是一种反向练习,让您创建一个可以通过提供的代码进行测试的类 Lexicon。
您应该创建 Lexicon 以便它可以通过用户输入并从中获取各种数据。到目前为止,我所拥有的所有测试方向输入,例如:
class Lexicon
Pair = Struct.new(:qualifier, :value)
userinput = gets.chomp()
userwords = userinput.split()
for i in userwords
if userwords[i].include?("north", "south", "east", "west")
directions = Pair.new("direction", userwords[i])
else
i++
end
end
end
对应的测试代码为:
require 'test/unit'
require_relative "../lib/lexicon"
class LexiconTests < Test::Unit::TestCase
Pair = Lexicon::Pair
@@lexicon = Lexicon.new()
def test_directions()
assert_equal([Pair.new(:direction, 'north')], @@lexicon.scan("north"))
result = @@lexicon.scan("north south east")
assert_equal(result, [Pair.new(:direction, 'north'),
Pair.new(:direction, 'south'),
Pair.new(:direction, 'east')])
end
提前感谢大家的帮助。我知道我可能还很遥远,但我正在努力完成学习 Ruby 的艰难之路!