Ruby错误:未定义的方法`shift'

时间:2014-09-28 22:23:59

标签: ruby

Ruby的全新。有几种我无法访问的数组方法。

编辑:

我最初有:

puts 'give me a number to find phi of: '
K = gets
List = Array.new(K)  #{|i| i}
List.drop(2)
List puts

记录错误:在`initialize'中:没有将String隐式转换为整数

所以我将上面第3行改为:

List = Array.new(K.to_i)  #{|i| i}

现在正在接收:未定义的方法`List' for main:Object

我尝试根据用户输入创建数组,然后删除或移动数组的前2个元素(0和1)

================================= 原帖不清楚:

给我一​​个号码来找到phi:' K =得到 放K.shift

我确定它很容易,但无法弄明白。我错过了一个基本的库或什么?任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

这是在Ruby中找到2和K之间的所有素数的最短路径,你不必发明自己的算法来找到已经存在的素数(http://ruby-doc.org/stdlib-1.9.3/libdoc/prime/rdoc/Prime.html)< / p>

require 'prime'

def find_primes_between_2_and(a_number)
  Prime.each(a_number).map do |prime|
    prime
  end
end

puts 'Give me a number up to which to find primes:'
number = gets.to_i
puts find_primes_between_2_and(number)

答案 1 :(得分:0)

我正在通过Chris Pike的Ruby“学习编程”&amp;我正在做这个练习。但是,嘿,谢谢你的帮助。

我的转变问题是没有参数传递它。应该是List.shift(2)

非常感谢!