Jawaban:
Apa yang kamu bicarakan gets
?
puts "Enter A"
a = gets.chomp
puts "Enter B"
b = gets.chomp
c = a.to_i + b.to_i
puts c
Sesuatu seperti itu?
Kernel.gets
mencoba membaca parameter yang ditemukan di ARGV
dan hanya meminta untuk menghibur jika tidak ARGV
ditemukan. Untuk memaksa membaca dari konsol meskipun ARGV
tidak kosong digunakanSTDIN.gets
Kernel.gets
coba baca file yang ditemukan ARGV
dan hanya minta konsol jika tidak ARGV
ditemukan. Untuk memaksa membaca dari konsol meskipun ARGV
tidak kosong digunakan STDIN.gets
.
a.to_i
dan b.to_i
bisa lebih baik
gets
memblokir? Jika tidak, apakah ada pengganti yang memblokir?
Anda juga dapat meneruskan parameter melalui baris perintah. Argumen baris perintah disimpan dalam array ARGV. jadi ARGV [0] adalah angka pertama dan ARGV [1] adalah angka kedua
#!/usr/bin/ruby
first_number = ARGV[0].to_i
second_number = ARGV[1].to_i
puts first_number + second_number
dan Anda menyebutnya seperti ini
% ./plus.rb 5 6
==> 11
Ada banyak cara untuk menerima masukan dari pengguna. Saya pribadi suka menggunakan metode mendapat. Saat Anda menggunakan get, ia mendapatkan string yang Anda ketikkan, dan itu termasuk tombol ENTER yang Anda tekan untuk mengakhiri input Anda.
name = gets
"mukesh\n"
Anda dapat melihat ini di irb ; ketik ini dan Anda akan melihat \ n, yang merupakan karakter “baris baru” yang dihasilkan oleh tombol ENTER: Ketik
name = gets
Anda akan melihat sesuatu seperti"mukesh\n"
Anda dapat menyingkirkan karakter baris baru yang mengganggu menggunakan metode chomp .
Metode chomp memberi Anda kembali string, tetapi tanpa mengakhiri baris baru. Penyelamat hidup metode chomp yang indah.
name = gets.chomp
"mukesh"
Anda juga dapat menggunakan terminal untuk membaca input. ARGV adalah konstanta yang ditentukan di kelas Object . Ini adalah turunan dari kelas Array dan memiliki akses ke semua metode array. Karena ini adalah sebuah array, meskipun itu adalah konstanta, elemen-elemennya dapat dimodifikasi dan dibersihkan tanpa masalah. Secara default, Ruby menangkap semua argumen baris perintah yang diteruskan ke program Ruby (dipisahkan oleh spasi) ketika biner baris perintah dipanggil dan menyimpannya sebagai string dalam array ARGV .
Saat ditulis di dalam program Ruby Anda, ARGV akan mengambil perintah baris perintah yang terlihat seperti ini:
test.rb hi my name is mukesh
dan buat larik yang terlihat seperti ini:
["hi", "my", "name", "is", "mukesh"]
Tapi, jika saya ingin memberikan input terbatas maka kita bisa menggunakan sesuatu seperti ini.
test.rb 12 23
dan gunakan masukan tersebut seperti ini dalam program Anda:
a = ARGV[0]
b = ARGV[1]
jika Anda ingin menahan argumen dari Terminal, coba kode berikut:
A = ARGV[0].to_i
B = ARGV[1].to_i
puts "#{A} + #{B} = #{A + B}"
Jika Anda ingin membuat konsol interaktif:
#!/usr/bin/env ruby
require "readline"
addends = []
while addend_string = Readline.readline("> ", true)
addends << addend_string.to_i
puts "#{addends.join(' + ')} = #{addends.sum}"
end
Penggunaan (dengan asumsi Anda meletakkan cuplikan di atas ke dalam summator
file di direktori saat ini):
chmod +x summator
./summator
> 1
1 = 1
> 2
1 + 2 = 3
Gunakan Ctrl + D
untuk keluar