序章
「Hello、World!」 プログラムは、コンピュータプログラミングにおける古典的で昔ながらの伝統です。 これは初心者向けのシンプルで完全な最初のプログラムであり、環境が適切に構成されていることを確認するための良い方法です。
このチュートリアルでは、Rubyでこのプログラムを作成する手順を説明します。 ただし、プログラムをより面白くするために、従来の「Hello、World」プログラムを変更して、ユーザーに名前を尋ねるようにします。 次に、挨拶でその名前を使用します。 チュートリアルが終了すると、実行すると次のようなプログラムが作成されます。
OutputPlease enter your name. Sammy Hello, Sammy! I'm Ruby!
- 前提条件
ローカルRuby開発環境をコンピューターにセットアップする必要があります。 次のいずれかのチュートリアルに従って設定します。
- RubyをインストールしてmacOSにローカルプログラミング環境をセットアップする方法
- RubyをインストールしてUbuntu16.04にローカルプログラミング環境をセットアップする方法
- Windows10でRubyをインストールしてローカルプログラミング環境をセットアップする方法
ステップ1—基本的な「Hello、World!」を作成するプログラム
「Hello、World!」を作成するにはプログラムで、nanoなどのコマンドラインテキストエディタを開いて、新しいファイルを作成しましょう。
nano hello.rb
ターミナルウィンドウにテキストファイルが開いたら、プログラムを入力します。
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
まず、次の行を追加します。これにより、ユーザーは名前を入力するように求められます。
あいさつ.rb
puts "Please enter your name."
ここでも、putsメソッドを使用して、画面にテキストを印刷します。
次に、次の行を追加して、ユーザー入力をキャプチャします。
あいさつ.rb
puts "Please enter your name." name = gets
この次の行はもう少し複雑です。 分解してみましょう。
getsメソッドは、キーボードからの入力を待つようにコンピューターに指示します。 これによりプログラムが一時停止し、ユーザーは任意のテキストを入力できるようになります。 ユーザーがキーボードのENTERキーを押すと、プログラムは続行されます。 次に、ENTERキーストロークを含むすべてのキーストロークがキャプチャされ、文字列の文字に変換されます。
これらの文字をプログラムの出力で使用したいので、文字列をnameという変数に割り当てしてこれらの文字を保存します。 Rubyは、プログラムが終了するまで、その文字列をコンピュータのメモリに保存します。
最後に、次の行を追加して出力を出力します。
あいさつ.rb
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
プログラムで次の行を見つけます。
あいさつ.rb
name = gets
そして、次のように変更します。
あいさつ.rb
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プログラムを作成することもできます。