请教一下,我刚刚开始学习ruby,想使用 array的sample方法,
item = ["a","b","c","d"].sample
p items
但是运行的时候总是出现以下错误
undefined method `sample' for ["a", "b", "c", "d"]:Array (NoMethodError)
但是我在 irb上输入["a","b","c","d"].sample的时候可以正常执行。
为什么呢?需要require 什么文件才能用这个方法? 可是array的其他方法都可以正常使用呀.
我刚刚试过,没有问题
你确认,你是这样试的吗?
是这样吗?
这个方法是有的,在ruby1.9的array.c里,如果不是ruby1.9的话就会报错。
同意
查一下运行环境的ruby版本
[code="ruby"]
ruby-1.8.7-p352 :002 > %w('a','b').sample
NoMethodError: undefined method `sample' for ["'a','b'"]:Array
ruby-1.9.2-p290 :001 > %w('a','b').sample
=> "'a','b'"
[/code]
[code="ruby"]
ruby-1.9.2-p290 :002 > %w('a' 'b').sample
=> "'a'" [/code]
:cry: