web-dev-qa-db-ja.com

Rubyのコンソールから入力を読み取りますか?

Rubyで簡単なA + Bプログラムを作成したいのですが、コンソールの操作方法がわかりません。

106
Sergey

getsについて話しているのですか?

puts "Enter A"
a = gets.chomp
puts "Enter B"
b = gets.chomp
c = a.to_i + b.to_i
puts c

そんな感じ?

更新

Kernel.getsARGVで見つかったパラメーターの読み取りを試み、ARGVが見つからない場合にのみコンソールに要求します。 ARGVが空でない場合でもコンソールからの読み取りを強制するには、STDIN.getsを使用します

213
siame

コマンドラインからパラメーターを渡すこともできます。コマンドライン引数は、配列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
28
rik.vanmechelen

ユーザーからの入力を受け取るには多くの方法があります。私は個人的にメソッドを取得するのが好きです。 getsを使用すると、入力したstringを取得し、ENTER入力を終了するために押したキー。

name = gets
"mukesh\n"

これはirb;これを入力すると、Enterキーが生成する「改行」文字である\ nが表示されます。name = getsと入力すると、"mukesh\n"のようなものが表示されます。厄介なnewline文字を使用してchompメソッド。

Chompメソッドは文字列を返しますが、改行は終了しません。美しいムシャムシャ食べる方法の救世主。

name = gets.chomp
"mukesh"

端末を使用して入力を読み取ることもできます。 ARGVは、Objectclass。これは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]
9

ターミナルからの引数を保持する場合は、次のコードを試してください。

A = ARGV[0].to_i
B = ARGV[1].to_i

puts "#{A} + #{B} = #{A + B}"
5
rilutham