Strings können in `[]` nicht in int geändert werden

In Ruby versuche ich, einen String in Int in-Operator umzuwandeln. '[]' Aber scheiterte. Hier ist der Code (meine Eingabe ist14 45):

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

Der Rubin stoppt mit einem Fehler:in '[]': no implicit conversion of String into Integer (TypeError)

Also ändere ich meinen Code wie folgt (dieser funktioniert gut):

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

Dieser funktioniert gut. Aber ich muss noch eine Zeile für die Konvertierung hinzufügen. Gibt es eine gute Möglichkeit, diese Linie zu vermeiden? Meine Version von Ruby ist:$: ruby --version ==> ruby 2.0.0p0 (2013-02-24 revision39474) [i686-linux]

Hallo Leute, bitte lasst mich WISSEN, warum Ihr dieses Thema noch schließen wollt. VIELEN DANK.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage