Wenn Sie aus irgendeinem Grund ein vollständiges Programm mit stdin / stdout io benötigen, können Sie mit dem -nFlag in kürzester Zeit einen Aufruf von gets.to_ian verkürzen eval$_:
p=eval$_
a=gets
b=gets.to_i
Das -nFlag umgibt Ihren Code mit while gets ... end, sodass das Programm eine Schleife ausführt, wenn mehr Eingaben bereitgestellt werden, als Ihr Programm verbraucht.
Antworten:
Verwenden Sie ARGV ($ *) und Massenzuweisung
(Haftungsausschluss: Ich kenne Ruby nicht, aber das funktioniert mit TIO )
2826 Bytes statt 30 (danke an Snack für den Hinweis auf den $ * Trick)quelle
Verwenden Sie ein Lambda
Antworten sind normalerweise als Lambda-Funktionen zulässig, wobei Ihre Eingabe / Ausgabe die Parameter / Rückgabewerte des Lambdas sind.
->p,a,b{...}
Wenn Sie dies einer Variablen zuweisen, wird
f
sie als aufgerufenf[p,a,b]
Es ist im Allgemeinen in Ordnung, auch die Arten der Eingaben anzunehmen, aber um sicherzugehen, können Sie dies in Ihrer Antwort erwähnen.
Relevanter Metapost über akzeptable Eingabe- / Ausgabemethoden
quelle
Wenn Sie aus irgendeinem Grund ein vollständiges Programm mit stdin / stdout io benötigen, können Sie mit dem
-n
Flag in kürzester Zeit einen Aufruf vongets.to_i
an verkürzeneval$_
:Das
-n
Flag umgibt Ihren Code mitwhile gets ... end
, sodass das Programm eine Schleife ausführt, wenn mehr Eingaben bereitgestellt werden, als Ihr Programm verbraucht.quelle