Antworten:
Sprechen Sie über gets
?
puts "Enter A"
a = gets.chomp
puts "Enter B"
b = gets.chomp
c = a.to_i + b.to_i
puts c
Sowas in der Art?
Kernel.gets
versucht, die gefundenen Parameter zu lesen ARGV
und fragt nur nach einer Konsole, wenn sie nicht ARGV
gefunden wird. Um das Lesen von der Konsole zu erzwingen, auch wenn ARGV
es nicht leer ist, verwenden SieSTDIN.gets
Kernel.gets
Versuchen Sie, die darin gefundenen Dateien zu lesen, und fragen Sie ARGV
nur nach einer Konsole, wenn sie nicht ARGV
gefunden wird. Um das Lesen von der Konsole zu erzwingen, auch wenn ARGV
es nicht leer ist, verwenden Sie STDIN.gets
.
a.to_i
und b.to_i
könnte besser sein
gets
blockiert? Wenn nicht, gibt es einen Ersatz, der blockiert?
Sie können die Parameter auch über die Befehlszeile übergeben. Befehlszeilenargumente werden im Array ARGV gespeichert. ARGV [0] ist also die erste Zahl und ARGV [1] die zweite Zahl
#!/usr/bin/ruby
first_number = ARGV[0].to_i
second_number = ARGV[1].to_i
puts first_number + second_number
und du nennst es so
% ./plus.rb 5 6
==> 11
Es gibt viele Möglichkeiten, Eingaben von den Benutzern zu erhalten. Ich persönlich mag es, die Methode zu benutzen. Wenn Sie get verwenden, wird die von Ihnen eingegebene Zeichenfolge abgerufen, einschließlich der EINGABETASTE , die Sie gedrückt haben, um Ihre Eingabe zu beenden.
name = gets
"mukesh\n"
Sie können dies in irb sehen ; Geben Sie diese und Sie werden sehen , die \ n, die „Neue - Zeile“ Zeichen ist , dass die ENTER - Taste erzeugt: Geben
name = gets
Sie Somethings sehen , wie"mukesh\n"
Sie von lästigen loswerden können Newline Zeichen mit chomp Methode.
Die chomp-Methode gibt Ihnen den String zurück, jedoch ohne den abschließenden Zeilenumbruch. Schöner Lebensretter der Chomp-Methode.
name = gets.chomp
"mukesh"
Sie können das Terminal auch zum Lesen der Eingabe verwenden. ARGV ist eine in der Object- Klasse definierte Konstante . Es ist eine Instanz der Array-Klasse und hat Zugriff auf alle Array-Methoden. Da es sich um ein Array handelt, obwohl es eine Konstante ist, können seine Elemente problemlos geändert und gelöscht werden. Standardmäßig erfasst Ruby alle Befehlszeilenargumente, die beim Aufrufen der Befehlszeilen-Binärdatei an ein Ruby-Programm übergeben werden (durch Leerzeichen getrennt), und speichert sie als Zeichenfolgen im ARGV-Array .
Wenn ARGV in Ihr Ruby-Programm geschrieben wird, übernimmt es einen Befehlszeilenbefehl, der folgendermaßen aussieht:
test.rb hi my name is mukesh
und erstellen Sie ein Array, das folgendermaßen aussieht:
["hi", "my", "name", "is", "mukesh"]
Aber wenn ich begrenzte Eingaben übergeben möchte, können wir so etwas verwenden.
test.rb 12 23
und verwenden Sie diese Eingabe wie folgt in Ihrem Programm:
a = ARGV[0]
b = ARGV[1]
Wenn Sie eine interaktive Konsole erstellen möchten:
#!/usr/bin/env ruby
require "readline"
addends = []
while addend_string = Readline.readline("> ", true)
addends << addend_string.to_i
puts "#{addends.join(' + ')} = #{addends.sum}"
end
Verwendung (vorausgesetzt, Sie haben das obige Snippet in die summator
Datei im aktuellen Verzeichnis eingefügt ):
chmod +x summator
./summator
> 1
1 = 1
> 2
1 + 2 = 3
Verwenden Sie Ctrl + D
zum Beenden