ruby - quick - sgdq 2018 live
¿Leyó la entrada desde la consola en Ruby? (4)
Quiero escribir un simple programa A + B en ruby, pero no tengo idea de cómo trabajar con la consola.
Hay muchas formas de obtener información de los usuarios. Personalmente me gusta usar el método. Cuando usa get, obtiene la cadena que escribió, y eso incluye la tecla ENTER que presionó para finalizar su entrada.
name = gets
"mukesh/n"
Puedes ver esto en irb ; escribe esto y verás el / n, que es el carácter de "nueva línea" que produce la tecla ENTER: Escriba el
name = gets
verá algo como"mukesh/n"
Puede deshacerse del molesto personaje de nueva línea usando el método chomp .
El método chomp te devuelve la cadena, pero sin la nueva línea de terminación. Beautiful chomp method life salvador.
name = gets.chomp
"mukesh"
También puede usar el terminal para leer la entrada. ARGV es una constante definida en la clase Object . Es una instancia de la clase Array y tiene acceso a todos los métodos de matriz. Como es una matriz, aunque es una constante, sus elementos se pueden modificar y eliminar sin problemas. Por defecto, Ruby captura todos los argumentos de línea de comando pasados a un programa de Ruby (dividido por espacios) cuando se invoca el binario de la línea de comandos y los almacena como cadenas en la matriz ARGV .
Cuando se escribe dentro de su programa Ruby, ARGV tomará tomar un comando de línea de comando que se ve así:
test.rb hi my name is mukesh
y crea una matriz que se ve así:
["hi", "my", "name", "is", "mukesh"]
Pero, si quiero pasar una entrada limitada, entonces podemos usar algo como esto.
test.rb 12 23
y use esas entradas como esta en su programa:
a = ARGV[0]
b = ARGV[1]
si desea mantener los argumentos desde Terminal, intente con el siguiente código:
A = ARGV[0].to_i
B = ARGV[1].to_i
puts "#{A} + #{B} = #{A + B}"
también puede pasar los parámetros a través de la línea de comando. Los argumentos de la línea de comando se almacenan en la matriz ARGV. entonces ARGV [0] es el primer número y ARGV [1] el segundo número
#!/usr/bin/ruby
first_number = ARGV[0].to_i
second_number = ARGV[1].to_i
puts first_number + second_number
y lo llamas así
% ./plus.rb 5 6
==> 11
¿Estás hablando de gets
?
puts "Enter A"
a = gets.chomp
puts "Enter B"
b = gets.chomp
c = a.to_i + b.to_i
puts c
¿Algo como eso?
Actualizar
Kernel.gets
intenta leer los parámetros encontrados en ARGV
y solo solicita la consola si no se encuentra ARGV
. Para obligar a leer desde la consola, incluso si ARGV
no está vacío, use STDIN.gets