Estou falando sobre Ruby, mas não ROR. Não há nenhuma palavra sobre a entrada do console.
Sergey
Respostas:
228
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?
Atualizar
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
Tenho um conflito com esta solução: 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.
fguillen
3
a.to_ie b.to_ipoderia ser melhor
Dorian
é gets bloqueando? Se não, existe algum substituto que está bloqueando?
noMAD de
1
@fguillen é uma ótima resposta e não deve ser escondida nos comentários. Você poderia responder, por favor? Obrigado!
Dan Rosenstark
2
@Yar obrigado pela sugestão, adicionei uma atualização à própria resposta.
fguillen
28
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
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.
Respostas:
Você está falando
gets
?Algo parecido?
Atualizar
Kernel.gets
tenta ler os parâmetros encontrados emARGV
e só pede para consolar se não forARGV
encontrado. Para forçar a leitura do console, mesmo seARGV
não estiver vazio, useSTDIN.gets
fonte
Kernel.gets
tenta ler os arquivos encontradosARGV
e só pede console se nãoARGV
encontrar. Para forçar a leitura do console, mesmo seARGV
não estiver vazio, useSTDIN.gets
.a.to_i
eb.to_i
poderia ser melhorgets
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
e você chama assim
fonte
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.
O método chomp devolve a string, mas sem a nova linha de terminação. Belo salvador de vidas com método chomp.
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:
e crie uma matriz parecida com esta:
Mas, se eu quiser passar uma entrada limitada, podemos usar algo assim.
e use essas entradas como esta em seu programa:
fonte
se você quiser manter os argumentos do Terminal, tente o seguinte código:
fonte
Se você deseja fazer um console interativo:
Uso (supondo que você coloque o snippet acima no
summator
arquivo do diretório atual):Use
Ctrl + D
para sairfonte