Risposte:
Stai parlando gets
?
puts "Enter A"
a = gets.chomp
puts "Enter B"
b = gets.chomp
c = a.to_i + b.to_i
puts c
Qualcosa del genere?
Kernel.gets
cerca di leggere i parametri trovati in ARGV
e chiede alla console solo se non ARGV
trovati. Per forzare la lettura da console anche se ARGV
non è vuoto utilizzareSTDIN.gets
Kernel.gets
prova a leggere i file trovati in ARGV
e chiede solo alla console se non ARGV
trovato. Per forzare la lettura da console anche se ARGV
non è vuoto utilizzare STDIN.gets
.
a.to_i
e b.to_i
potrebbe essere migliore
gets
bloccando? In caso contrario, c'è qualche sostituto che sta bloccando?
puoi anche passare i parametri tramite la riga di comando. Gli argomenti della riga di comando sono archivi nell'array ARGV. quindi ARGV [0] è il primo numero e ARGV [1] il secondo numero
#!/usr/bin/ruby
first_number = ARGV[0].to_i
second_number = ARGV[1].to_i
puts first_number + second_number
e lo chiami così
% ./plus.rb 5 6
==> 11
Ci sono molti modi per ricevere input dagli utenti. Personalmente mi piace usare il metodo gets. Quando usi gets, ottiene la stringa che hai digitato e questo include il tasto INVIO che hai premuto per terminare l'input.
name = gets
"mukesh\n"
Puoi vederlo in irb ; digita questo e vedrai \ n, che è il carattere di "nuova riga" prodotto dal tasto INVIO: Digita
name = gets
vedrai qualcosa come"mukesh\n"
Puoi sbarazzarti del fastidioso carattere di nuova riga usando il metodo chomp .
Il metodo chomp ti restituisce la stringa, ma senza la fine riga. Bellissimo metodo chomp salvatore della vita.
name = gets.chomp
"mukesh"
È inoltre possibile utilizzare il terminale per leggere l'ingresso. ARGV è una costante definita nella classe Object . È un'istanza della classe Array e ha accesso a tutti i metodi dell'array. Poiché è un array, anche se è una costante, i suoi elementi possono essere modificati e cancellati senza problemi. Per impostazione predefinita, Ruby cattura tutti gli argomenti della riga di comando passati a un programma Ruby (divisi per spazi) quando viene richiamato il binario della riga di comando e li memorizza come stringhe nell'array ARGV .
Quando scritto all'interno del tuo programma Ruby, ARGV prenderà un comando da riga di comando simile a questo:
test.rb hi my name is mukesh
e crea un array simile a questo:
["hi", "my", "name", "is", "mukesh"]
Ma, se voglio passare un input limitato, possiamo usare qualcosa di simile.
test.rb 12 23
e usa questi input in questo modo nel tuo programma:
a = ARGV[0]
b = ARGV[1]
Se vuoi creare una console interattiva:
#!/usr/bin/env ruby
require "readline"
addends = []
while addend_string = Readline.readline("> ", true)
addends << addend_string.to_i
puts "#{addends.join(' + ')} = #{addends.sum}"
end
Utilizzo (supponendo di aver inserito lo snippet sopra nel summator
file nella directory corrente):
chmod +x summator
./summator
> 1
1 = 1
> 2
1 + 2 = 3
Usa Ctrl + D
per uscire