Yanıtlar:
Hakkında gets
mı konuşuyorsun
puts "Enter A"
a = gets.chomp
puts "Enter B"
b = gets.chomp
c = a.to_i + b.to_i
puts c
Bunun gibi bir şey?
Kernel.gets
içinde bulunan parametreleri okumaya çalışır ARGV
ve sadece ARGV
bulunamazsa konsola sorar . ARGV
Boş olmasa bile konsoldan okumaya zorlamak içinSTDIN.gets
Kernel.gets
içinde bulunan dosyaları okumaya çalışın ARGV
ve yalnızca ARGV
bulunamazsa konsola sorar . ARGV
Boş kullanım olmasa bile konsoldan okumaya zorlamak STDIN.gets
.
a.to_i
ve b.to_i
daha iyi olabilirdi
gets
engelleme? Değilse, engelleyen herhangi bir yedek var mı?
parametreleri komut satırından da geçirebilirsiniz. Komut satırı argümanları ARGV dizisinde depolanır. yani ARGV [0] ilk sayı ve ARGV [1] ikinci sayıdır
#!/usr/bin/ruby
first_number = ARGV[0].to_i
second_number = ARGV[1].to_i
puts first_number + second_number
ve buna böyle diyorsun
% ./plus.rb 5 6
==> 11
Kullanıcılardan girdi almanın birçok yolu vardır. Ben şahsen bu yöntemi kullanmayı seviyorum. Gets kullandığınızda, yazdığınız dizeyi alır ve bu, girişinizi sonlandırmak için bastığınız ENTER tuşunu içerir .
name = gets
"mukesh\n"
Bunu irb'de görebilirsiniz ; bunu yazın ve ENTER tuşunun ürettiği "satırsonu" karakteri olan \ n'yi göreceksiniz: Yazma
name = gets
gibi şeyler göreceksiniz Chomp yöntemini kullanarak"mukesh\n"
sinir bozucu satırsonu karakterinden kurtulabilirsiniz .
Chomp yöntemi, satırsonu sonlandırmadan dizeyi geri verir. Güzel chomp yöntemi hayat kurtarıcı.
name = gets.chomp
"mukesh"
Girişi okumak için terminali de kullanabilirsiniz. ARGV , Object sınıfında tanımlanan bir sabittir . Array sınıfının bir örneğidir ve tüm dizi yöntemlerine erişime sahiptir. Bir dizi olduğu için, sabit olmasına rağmen, elemanları sorunsuz bir şekilde değiştirilebilir ve temizlenebilir. Varsayılan olarak Ruby, komut satırı ikilisi çağrıldığında bir Ruby programına aktarılan (boşluklarla bölünmüş) tüm komut satırı argümanlarını yakalar ve bunları ARGV dizisinde dizeler olarak saklar .
Ruby programınızın içine yazıldığında, ARGV şuna benzeyen bir komut satırı komutu alacaktır:
test.rb hi my name is mukesh
ve şuna benzeyen bir dizi oluşturun:
["hi", "my", "name", "is", "mukesh"]
Ancak, sınırlı girdiyi geçmek istersem, bunun gibi bir şey kullanabiliriz.
test.rb 12 23
ve bu girdileri programınızda şu şekilde kullanın:
a = ARGV[0]
b = ARGV[1]
Etkileşimli konsol yapmak istiyorsanız:
#!/usr/bin/env ruby
require "readline"
addends = []
while addend_string = Readline.readline("> ", true)
addends << addend_string.to_i
puts "#{addends.join(' + ')} = #{addends.sum}"
end
Kullanım (yukarıdaki pasajı summator
geçerli dizindeki dosyaya koyduğunuzu varsayarak ):
chmod +x summator
./summator
> 1
1 = 1
> 2
1 + 2 = 3
Ctrl + D
Çıkmak için kullanın