Respostas:
Você está falando gets
?
puts "Enter A"
a = gets.chomp
puts "Enter B"
b = gets.chomp
c = a.to_i + b.to_i
puts c
Algo parecido?
Kernel.gets
tenta ler os parâmetros encontrados em ARGV
e só pede para consolar se não for ARGV
encontrado. Para forçar a leitura do console, mesmo se ARGV
não estiver vazio, useSTDIN.gets
Kernel.gets
tenta ler os arquivos encontrados ARGV
e só pede console se não ARGV
encontrar. Para forçar a leitura do console, mesmo se ARGV
não estiver vazio, use STDIN.gets
.
a.to_i
e b.to_i
poderia ser melhor
gets
bloqueando? Se não, existe algum substituto que está bloqueando?
você também pode passar os parâmetros por meio da linha de comando. Os argumentos da linha de comando são armazenados na matriz ARGV. então ARGV [0] é o primeiro número e ARGV [1] o segundo número
#!/usr/bin/ruby
first_number = ARGV[0].to_i
second_number = ARGV[1].to_i
puts first_number + second_number
e você chama assim
% ./plus.rb 5 6
==> 11
Existem muitas maneiras de obter a opinião dos usuários. Eu pessoalmente gosto de usar o método gets. Quando você usa gets, ele obtém a string que você digitou, e isso inclui a tecla ENTER que você pressionou para encerrar sua entrada.
name = gets
"mukesh\n"
Você pode ver isso no irb ; digite isso e você verá o \ n, que é o caractere de “nova linha” que a tecla ENTER produz: Digite,
name = gets
você verá algo como"mukesh\n"
Você pode se livrar do caractere de nova linha irritante usando chomp método .
O método chomp devolve a string, mas sem a nova linha de terminação. Belo salvador de vidas com método chomp.
name = gets.chomp
"mukesh"
Você também pode usar o terminal para ler a entrada. ARGV é uma constante definida na classe Object . É uma instância da classe Array e tem acesso a todos os métodos de array. Por ser um array, mesmo sendo uma constante, seus elementos podem ser modificados e limpos sem problemas. Por padrão, Ruby captura todos os argumentos de linha de comando passados para um programa Ruby (dividido por espaços) quando o binário de linha de comando é invocado e os armazena como strings no array ARGV .
Quando escrito dentro do seu programa Ruby, o ARGV tomará um comando de linha de comando semelhante a este:
test.rb hi my name is mukesh
e crie uma matriz parecida com esta:
["hi", "my", "name", "is", "mukesh"]
Mas, se eu quiser passar uma entrada limitada, podemos usar algo assim.
test.rb 12 23
e use essas entradas como esta em seu programa:
a = ARGV[0]
b = ARGV[1]
Se você deseja fazer um console interativo:
#!/usr/bin/env ruby
require "readline"
addends = []
while addend_string = Readline.readline("> ", true)
addends << addend_string.to_i
puts "#{addends.join(' + ')} = #{addends.sum}"
end
Uso (supondo que você coloque o snippet acima no summator
arquivo do diretório atual):
chmod +x summator
./summator
> 1
1 = 1
> 2
1 + 2 = 3
Use Ctrl + D
para sair