我正在完成Neo的Ruby (http://rubykoans.com/)。在about_methods.rb中,koan指示纠正以下当前损坏的eval:
# (NOTE: We are Using eval below because the example code is
# considered to be syntactically invalid).
def test_sometimes_missing_parentheses_are_ambiguous
eval "assert_equal (5), my_global_method (2, 3)" # ENABLE CHECK
#
# Ruby doesn't know if you mean:
#
# assert_equal(5, my_global_method(2), 3)
# or
# assert_equal(5, my_global_method(2, 3))
#
# Rewrite the eval string to continue.
#
endmy_global_method是
def my_global_method(a,b)
a + b
end要想通过这个测试,我需要如何修改eval?
编辑:RubyKoans: broken koan?询问这段代码是否被破坏,虽然它表明问题是按预期的方式进行的,但是没有提供对koan的回答。
错误如下:
(eval):1: syntax error, unexpected tINTEGER, expecting keyword_do or '{' or '(' (SyntaxError)
assert_equal 5, my_global_method 2, 3发布于 2014-01-06 04:52:42
改为:
eval "assert_equal 5, my_global_method(2, 3)"发布于 2014-05-27 18:57:53
你想让你的评估线看起来更像这样:
"assert_equal 5,my_global_method(2,3)“# ENABLE CHECK
您的错误告诉您,它无法理解传递给它的参数,因为它缺少括号。他们错误地将代码放入其中,以证明在调用带有多个参数的方法时需要使用括号。
https://stackoverflow.com/questions/20942903
复制相似问题