最初のRubyプログラムの書き方
序章
「Hello、World!」 プログラムは、コンピュータプログラミングにおける古典的で昔ながらの伝統です。 これは初心者向けのシンプルで完全な最初のプログラムであり、環境が適切に構成されていることを確認するための良い方法です。
このチュートリアルでは、Rubyでこのプログラムを作成する手順を説明します。 ただし、プログラムをより面白くするために、従来の「Hello、World」プログラムを変更して、ユーザーに名前を尋ねるようにします。 次に、挨拶でその名前を使用します。 チュートリアルが終了すると、実行すると次のようなプログラムが作成されます。
OutputPlease enter your name.
Sammy
Hello, Sammy! I'm Ruby!
##前提条件
コンピューターにローカルRuby開発環境をセットアップする必要があります。 次のチュートリアルのいずれかに従ってセットアップします。
- MacOSでRubyをインストールしてローカルプログラミング環境をセットアップする方法
- Ubuntu16.04でRubyをインストールしてローカルプログラミング環境をセットアップする方法
- Windows10でRubyをインストールしてローカルプログラミング環境をセットアップする方法
ステップ1—基本的な「Hello、World!」を作成するプログラム
「Hello、World!」を書くためにプログラムでは、nano
などのコマンドラインテキストエディタを開いて、新しいファイルを作成しましょう。
- nano hello.rb
ターミナルウィンドウにテキストファイルが開いたら、プログラムを入力します。
puts "Hello, World!"
コードのさまざまなコンポーネントを分解してみましょう。
puts
はRubyメソッドで、コンピューターにテキストを画面に印刷するように指示します。
次に、puts
メソッドの後に、引用符で囲まれた一連の文字—Hello, World!
が続きます。 引用符で囲まれた文字は、文字列と呼ばれます。 puts
メソッドは、プログラムの実行時にこの文字列を画面に出力します。
puts
メソッドなどの一部のメソッドは、デフォルトでRubyに含まれています。 これらの組み込みメソッドは、Rubyプログラムを作成するときにいつでも使用できます。 独自のメソッドを定義することもできます。
CONTROL
キーとX
キーを入力してnano
を保存して終了し、ファイルの保存を求めるメッセージが表示されたら、y
を押します。
プログラムを試してみましょう。
ステップ2—Rubyプログラムの実行
「Hello、World!」でプログラムが作成されたら、プログラムを実行する準備が整いました。 ruby
コマンドに続いて、作成したファイルの名前を使用します。
- ruby hello.rb
プログラムが実行され、次の出力が表示されます。
OutputHello, World!
実際に何が起こったのかを調べてみましょう。
ruby
コマンドを実行すると、Rubyインタープリターが起動しました。 Rubyインタープリターは、指定したファイルを読み取り、その内容を評価しました。 呼び出しputs
関数によって行puts "Hello, World!"
を実行しました。 Hello, World!
の文字列値が関数に渡されました。
この例では、文字列Hello, World!
は、メソッドに渡される値であるため、引数とも呼ばれます。
Hello, World!
の両側にある引用符は、文字列が含まれていることをRubyに通知するために使用されるため、画面に出力されませんでした。 引用符は、文字列の開始位置と終了位置を示します。
プログラムは機能しますが、よりインタラクティブにすることができます。 方法を調べてみましょう。
ステップ3—入力のプロンプト
プログラムを実行するたびに、同じ出力が生成されます。 私たちのプログラムを実行している人に名前を尋ねましょう。 次に、その名前を出力で使用できます。
既存のプログラムを変更する代わりに、nano
エディターでgreeting.rb
という新しいプログラムを作成します。
- nano greeting.rb
まず、次の行を追加します。これにより、ユーザーは名前を入力するように求められます。
puts "Please enter your name."
ここでも、puts
メソッドを使用して、画面にテキストを印刷します。
次に、次の行を追加して、ユーザー入力をキャプチャします。
puts "Please enter your name."
name = gets
この次の行はもう少し複雑です。 分解してみましょう。
gets
メソッドは、キーボードからの入力を待つようにコンピューターに指示します。 これによりプログラムが一時停止し、ユーザーは任意のテキストを入力できるようになります。 ユーザーがキーボードのENTER
キーを押すと、プログラムは続行されます。 次に、ENTER
キーストロークを含むすべてのキーストロークがキャプチャされ、文字列の文字に変換されます。
これらの文字をプログラムの出力で使用したいので、文字列をname
という変数に割り当てしてこれらの文字を保存します。 Rubyは、プログラムが終了するまで、その文字列をコンピュータのメモリに保存します。
最後に、次の行を追加して出力を出力します。
puts "Please enter your name."
name = gets
puts "Hi, #{name}! I'm Ruby!"
再びputs
メソッドを使用しますが、今回は文字列補間と呼ばれるRuby機能を使用します。これにより、変数に割り当てられた値を取得して文字列内に配置できます。 name
という単語の代わりに、name
変数に保存した値を取得します。これは、ユーザーの名前である必要があります。
CTRL+X
を押してnano
を保存して終了し、ファイルの保存を求めるメッセージが表示されたらy
を押します。
次に、プログラムを実行します。 名前の入力を求められるので、名前を入力してENTER
を押します。 出力は、期待したものと正確に一致しない場合があります。
OutputPlease enter your name.
Sammy
Hi, Sammy
! I'm Ruby!
Hi, Sammy! I'm Ruby!
の代わりに、名前の直後に改行があります。
プログラムは、プログラムに続行するように指示するために押したENTER
キーを含む、すべてのすべてのキーストロークをキャプチャしました。 文字列でENTER
キーを押すと、改行を作成する特殊文字が作成されます。 プログラムの出力は、私たちが指示したとおりに実行されています。 入力したテキスト(新しい行を含む)が表示されます。 それは私たちが望んでいたものではありません。 しかし、私たちはそれを修正することができます。
エディタでgreeting.rb
ファイルを開きます。
- nano greeting.rb
プログラムで次の行を見つけます。
name = gets
そして、次のように変更します。
name = gets.chop
これは、gets
でキャプチャした文字列に対してRubyのchop
メソッドを使用します。 chop
メソッドは、文字列から最後の文字を削除します。 この場合、ENTER
を押したときに作成された文字列の最後にある改行文字が削除されます。
nano
を保存して終了します。 CTRL+X
を押し、ファイルを保存するように求められたらy
を押します。
プログラムを再度実行します。
- ruby greeting.rb
今回は、名前を入力してENTER
を押すと、期待どおりの出力が得られます。
OutputPlease enter your name.
Sammy
Hi, Sammy! I'm Ruby!
これで、ユーザーからの入力を受け取り、それを画面に出力するRubyプログラムができました。
結論
入力のプロンプト、結果の処理、および出力の表示方法がわかったので、プログラムをさらに拡張してみてください。 たとえば、ユーザーの好きな色を尋ね、プログラムにその好きな色が赤であると言わせます。 これと同じ手法を使用して、単純なMad-Libプログラムを作成することもできます。