问题描述
请教一下,我刚刚开始学习ruby,想使用 array的sample方法,item = ["a","b","c","d"].samplep items但是运行的时候总是出现以下错误undefined method `sample' for ["a", "b", "c", "d"]:Array (NoMethodError)但是我在 irb上输入["a","b","c","d"].sample的时候可以正常执行。为什么呢?需要require 什么文件才能用这个方法? 可是array的其他方法都可以正常使用呀. 问题补充:jsntghf 写道
解决方案
我刚刚试过,没有问题你确认,你是这样试的吗?1. irb可以用2. 立即创建一个tmp.rb文件里面写item = ["a","b","c","d"].samplep items 3. ruby tmp.rb是这样吗?
解决方案二:
ruby-1.9.2-p290 :002 > %w('a' 'b').sample=> "'a'"
解决方案三:
同意查一下运行环境的ruby版本ruby-1.8.7-p352 :002 > %w('a','b').sampleNoMethodError: undefined method `sample' for ["'a','b'"]:Arrayruby-1.9.2-p290 :001 > %w('a','b').sample => "'a','b'"
解决方案四:
这个方法是有的,在ruby1.9的array.c里,如果不是ruby1.9的话就会报错。
时间: 2024-10-22 19:43:29