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.getstenta ler os parâmetros encontrados em ARGVe só pede para consolar se não for ARGVencontrado. Para forçar a leitura do console, mesmo se ARGVnão estiver vazio, useSTDIN.gets
Kernel.getstenta ler os arquivos encontrados ARGVe só pede console se não ARGVencontrar. Para forçar a leitura do console, mesmo se ARGVnão estiver vazio, use STDIN.gets.
a.to_ie b.to_ipoderia 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 = getsvocê 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 summatorarquivo do diretório atual):
chmod +x summator
./summator
> 1
1 = 1
> 2
1 + 2 = 3
Use Ctrl + Dpara sair