Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在Ruby 1.9.x中使用无参数函数吗?_Ruby_Parameters - Fatal编程技术网

我可以在Ruby 1.9.x中使用无参数函数吗?

我可以在Ruby 1.9.x中使用无参数函数吗?,ruby,parameters,Ruby,Parameters,因此,我正在研究,我遇到了一个问题,我认为这是特定于ruby1.9.x的 def test_calling_global_methods_without_parentheses result = my_global_method 2, 3 assert_equal 5, result end 我明白了: james@tristan:~/code/ruby_projects/ruby_koans$ rake (in /home/james/code/ruby_projects

因此,我正在研究,我遇到了一个问题,我认为这是特定于
ruby
1.9.x的

def test_calling_global_methods_without_parentheses

    result = my_global_method 2, 3
    assert_equal 5, result 
end
我明白了:

james@tristan:~/code/ruby_projects/ruby_koans$ rake
(in /home/james/code/ruby_projects/ruby_koans)
cd koans
/home/james/.rvm/rubies/ruby-1.9.2-p180/bin/ruby path_to_enlightenment.rb
/home/james/code/ruby_projects/ruby_koans/koans/about_methods.rb:21:in `eval': (eval):1: syntax error, unexpected tINTEGER, expecting keyword_do or '{' or '(' (SyntaxError)
assert_equal 5, my_global_method 2, 3
                                  ^
    from /home/james/code/ruby_projects/ruby_koans/koans/about_methods.rb:21:in `test_sometimes_missing_parentheses_are_ambiguous'
    from /home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:377:in `meditate'
    from /home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:449:in `block in walk'
    from /home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:460:in `block (3 levels) in each_step'
    from /home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:458:in `each'
    from /home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:458:in `block (2 levels) in each_step'
    from /home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:457:in `each'
    from /home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:457:in `each_with_index'
    from /home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:457:in `block in each_step'
    from /home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:455:in `catch'
    from /home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:455:in `each_step'
    from /home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:448:in `walk'
    from /home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:470:in `block in <top (required)>'
rake aborted!
Command failed with status (1): [/home/james/.rvm/rubies/ruby-1.9.2-p180/bi...]
/home/james/code/ruby_projects/ruby_koans/Rakefile:86:in `block in <top (required)>'
(See full trace by running task with --trace)
james@tristan:~/code/ruby_projects/ruby_koans$
james@tristan:~/code/ruby_项目/ruby_koans$rake
(in/home/james/code/ruby_projects/ruby_koans)
cd koans
/home/james/.rvm/rubies/ruby-1.9.2-p180/bin/ruby-path_-to_-induction.rb
/home/james/code/ruby_projects/ruby_koans/koans/about_methods.rb:21:in'eval':(eval):1:语法错误,意外的tINTEGER,应为关键字_do或“{”或“(”(SyntaxError)
断言等于5,我的全局方法2,3
^
from/home/james/code/ruby_projects/ruby_koans/koans/about_methods.rb:21:test_中有时缺少括号是不明确的
from/home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:377:in“冥想”
from/home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:449:in'block in walk'
from/home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:460:in“每个步骤中的块(3个级别)”中
from/home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:458:in'each'
from/home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:458:in“每个步骤中的块(2个级别)”中
from/home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:457:in'each'
from/home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:457:in'each_with_index'
from/home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:457:in'block in each_step'
from/home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:455:in'catch'
from/home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:455:in'each_step'
from/home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:448:in'walk'
from/home/james/code/ruby_projects/ruby_koans/koans/edgecase.rb:470:in'block in'
雷克流产了!
命令失败,状态为(1):[/home/james/.rvm/rubies/ruby-1.9.2-p180/bi…]
/home/james/code/ruby_projects/ruby_koans/Rakefile:86:in'block in'
(通过使用--trace运行任务查看完整跟踪)
james@tristan:~/code/ruby_projects/ruby_koans$

我查看了GitHub上的几个不同的存储库,它们声称最近(在过去两个月内)完成了Koans,我只看到了我使用的答案(第一个代码片段)。那么,是我的代码、Ruby安装还是其他什么原因?

我不知道为什么,但代码的评估如下:

def test_calling_global_methods_without_parentheses
  assert_equal 5, my_global_method 2, 3
end

问题是,这是含糊不清的,可能意味着
assert_equal(5,my_global_method(2,3))
assert_equal(5,my_global_method(2,3))
。在这种特定情况下,您必须使用括号。

您得到的错误不是来自您列出的代码,而是来自相关文件的下面的代码。注释说明:

注意:我们在下面使用eval,因为示例代码被认为在语法上无效


不要忘记删除方法调用和第一个参数之间的空格

这样做

eval“断言等于5,我的全局方法(2,3)”

而不是


eval“assert_equal 5,my_global_method(2,3)”#小心空格!

谢谢!这也提醒我,我真的需要更多地了解错误。。。