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.getsversucht, die gefundenen Parameter zu lesen ARGVund fragt nur nach einer Konsole, wenn sie nicht ARGVgefunden wird. Um das Lesen von der Konsole zu erzwingen, auch wenn ARGVes nicht leer ist, verwenden SieSTDIN.gets
Kernel.getsVersuchen Sie, die darin gefundenen Dateien zu lesen, und fragen Sie ARGVnur nach einer Konsole, wenn sie nicht ARGVgefunden wird. Um das Lesen von der Konsole zu erzwingen, auch wenn ARGVes nicht leer ist, verwenden Sie STDIN.gets.
a.to_iund b.to_ikönnte besser sein
getsblockiert? 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 = getsSie 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 summatorDatei im aktuellen Verzeichnis eingefügt ):
chmod +x summator
./summator
> 1
1 = 1
> 2
1 + 2 = 3
Verwenden Sie Ctrl + Dzum Beenden