回答:
話してるのgets
?
puts "Enter A"
a = gets.chomp
puts "Enter B"
b = gets.chomp
c = a.to_i + b.to_i
puts c
そんな感じ?
Kernel.gets
で見つかったパラメータを読み取ろうとし、見つからARGV
なかった場合にのみコンソールに要求しARGV
ます。ARGV
空でなくても強制的にコンソールから読み取るにはSTDIN.gets
Kernel.gets
見つかったファイルを読み取ってみてARGV
、ARGV
見つからない場合にのみコンソールに要求します。ARGV
が空でなくても強制的にコンソールから読み取るには、を使用しますSTDIN.gets
。
a.to_i
そしてb.to_i
より良いかもしれない
gets
、ブロッキング?そうでない場合、ブロックしている代替物はありますか?
コマンドラインからパラメータを渡すこともできます。コマンドライン引数は、配列ARGVに格納されます。したがって、ARGV [0]は最初の数値で、ARGV [1]は2番目の数値です。
#!/usr/bin/ruby
first_number = ARGV[0].to_i
second_number = ARGV[1].to_i
puts first_number + second_number
そしてあなたはそれをこのように呼びます
% ./plus.rb 5 6
==> 11
ユーザーから入力を受け取る方法はたくさんあります。私は個人的にはメソッドgetを使用するのが好きです。getsを使用すると、 入力した文字列が取得されます。これには、入力を終了するために押したEnterキーが含まれます。
name = gets
"mukesh\n"
これはirbで確認できます。これを入力すると、Enterキーが生成する「改行」文字である\ nが表示されます。入力
name = gets
すると、chompメソッドを使用して"mukesh\n"
厄介な改行文字を取り除くことができます。
chompメソッドは文字列を返しますが、終端の改行はありません。美味しいムチムチライフ救世主。
name = gets.chomp
"mukesh"
端末を使用して入力を読み取ることもできます。ARGVはObject クラスで定義された定数です。これはArrayクラスのインスタンスであり、すべての配列メソッドにアクセスできます。配列なので定数ですが、要素の変更やクリアは問題なく行えます。デフォルトでは、Rubyは、コマンドラインバイナリが呼び出されたときにRubyプログラムに渡されたすべてのコマンドライン引数(スペースで分割)をキャプチャし、ARGV配列に文字列として格納します。
Rubyプログラム内で記述した場合、ARGVは次のようなコマンドラインコマンドを受け取ります。
test.rb hi my name is mukesh
次のような配列を作成します。
["hi", "my", "name", "is", "mukesh"]
しかし、制限された入力を渡したい場合は、次のようなものを使用できます。
test.rb 12 23
これらの入力をプログラムで次のように使用します。
a = ARGV[0]
b = ARGV[1]
インタラクティブコンソールにしたい場合:
#!/usr/bin/env ruby
require "readline"
addends = []
while addend_string = Readline.readline("> ", true)
addends << addend_string.to_i
puts "#{addends.join(' + ')} = #{addends.sum}"
end
使用法(上記のスニペットをsummator
現在のディレクトリのファイルに配置したと想定):
chmod +x summator
./summator
> 1
1 = 1
> 2
1 + 2 = 3
Ctrl + D
終了に使用