No se pueden cambiar las cadenas en int en `[]`

En ruby, trato de convertir un String a Int en operador '[]' Pero falló. Aquí está el código (mi entrada es14 45):

STDIN.gets.split(/\s+/).each do |str|
    book = tags[str.to_i]     # book is just a new variable.  tags is an array 
end

el rubí se detendrá con un error:in '[]': no implicit conversion of String into Integer (TypeError)

Así que cambio mi código a continuación (este funciona bien):

STDIN.gets.split(/\s+/).each do |str|
  number = str.to_i     # for converting
  book = tags[number]
end

Este funciona bien. Pero debo agregar una línea más para convertir. ¿Hay una buena manera de evitar esa línea? Mi versión de ruby ​​es:$: ruby --version ==> ruby 2.0.0p0 (2013-02-24 revision39474) [i686-linux]

Hola muchachos, permítanme saber por qué aún quieren cerrar este tema. GRACIAS.

Respuestas a la pregunta(1)

Su respuesta a la pregunta