最初のRubyプログラムの書き方
はじめに
「こんにちは、世界!」プログラムは、コンピュータプログラミングにおける古典的で伝統的なものです。これは初心者のための小さなかつ完全な最初のプログラムであり、環境が適切に設定されているか確認する良い方法です。
このチュートリアルでは、Rubyでこのプログラムを作成する手順を説明します。しかし、プログラムをより興味深くするために、伝統的な「Hello, World」プログラムを変更して、ユーザーに名前を尋ねるようにします。そして、その名前を挨拶に使用します。チュートリアルが終わった時点で、プログラムを実行すると以下のような結果が得られます。
Please enter your name. Sammy Hello, Sammy! I’m Ruby!
必要条件 (Hitsujo jōken)
あなたのコンピュータにはローカルなRuby開発環境が設定されているべきです。以下のチュートリアルのいずれかに従って、環境を設定してください。
- How to Install Ruby and Set Up a Local Programming Environment on macOS
- How to Install Ruby and Set Up a Local Programming Environment on Ubuntu 16.04
- How to Install Ruby and Set Up a Local Programming Environment on Windows 10
ステップ1 – 基本の「Hello, World!」プログラムの作成
「こんにちは、世界!」プログラムを書くには、nanoなどのコマンドラインテキストエディタを開いて新しいファイルを作成してください。
- nano hello.rb
テキストファイルがターミナルウィンドウで開かれたら、プログラムを入力します。
puts "Hello, World!"
コードの異なる要素を分析しましょう。 (Kōdo no kotonaru yōso o bunseki shimashō.)
putsはRubyのメソッドであり、コンピュータに画面にテキストを表示するよう指示するものです。
次に、 putsメソッドの後には「Hello, World!」という文字列が引用符で囲まれています。引用符内の文字列のことを「文字列」と呼びます。プログラムが実行されると、putsメソッドはこの文字列を画面に表示します。
いくつかのメソッド、例えばputsメソッドのようなものは、Rubyにはデフォルトで含まれています。これらの組み込みメソッドは、Rubyプログラムを作成する際に常に利用できます。また、独自のメソッドを定義することも可能です。
「CONTROL」と「X」のキーを入力してnanoを保存して終了し、ファイルの保存を求められたら「y」を押してENTERキーを押してください。
あなたのプログラムを試してみましょう。
ステップ2 – Rubyプログラムの実行
あなたの「こんにちは世界」プログラムを書いたら、プログラムを実行する準備ができました。作成したファイルの名前の後に、rubyコマンドを使用します。
- ruby hello.rb
このプログラムは実行され、この出力が表示されます。 (Kono puroguramu wa jikkou sare, kono shutsuryoku ga hyouji saremasu.)
Hello, World!
実際に起こったことを探求しましょう。 (Jissai ni okotta koto o tankyū shimashō.)
「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キーの入力も含めて、文字列に変換されます。
あなたはプログラムの出力でそれらの文字を使用したいので、変数「名前」という名前の変数に文字列を代入して保存します。プログラムが終了するまで、Rubyはその文字列をコンピュータのメモリに保存します。
最後に、出力結果を表示するためにこの行を追加してください。
puts "Please enter your name."
name = gets
puts "Hi, #{name}! I'm Ruby!"
ごめんなさい、私は日本語のネイティブではありませんが、以下の文を日本語に再表現してみます:
「putsメソッドを再度使用しますが、今度は文字列補間と呼ばれるRubyの機能を使います。これにより、変数に割り当てられた値を文字列の中に配置することができます。nameという単語の代わりに、ユーザーの名前であるname変数に保存された値を取得できます。」
「CTRL+X」を押してnanoを保存して終了し、ファイルの保存を促されたら「y」を押してENTERキーを押してください。
このコマンドを使ってプログラムを実行してください。
- ruby greeting.rb
名前を入力してENTERキーを押すように求められますが、出力は予想通りにならないかもしれません。
Please enter your name. Sammy Hi, Sammy ! I’m Ruby!
「こんにちは、サミー! 私はルビーだよ!」と言う代わりに、名前の直後に改行が入っています。
プログラムは、継続するようにENTERキーを押したときを含めて、すべてのキーストロークをキャプチャしました。文字列内でENTERキーを押すと、新しい行を作成する特別な文字が生成されます。プログラムの出力は、入力したテキストを正確に表示していますが、それが望んだものではないだけです。しかし、修正することができます。
あなたのエディタでgreeting.rbファイルを開いてください。
- nano greeting.rb
あなたのプログラム内で、この行を見つけてください。
name = gets
以下の文章を日本語で自然に言い換えてください。1つのオプションで構いません。そして、以下のように修正してください。
Original sentence: “I went to the store and bought some groceries.”
Paraphrased sentence:「店に行って、食料品を買いました。」
name = gets.chop
これは、getsでキャプチャした文字列に対してRubyのchopメソッドを使用しています。chopメソッドは文字列から一番最後の文字を削除します。この場合、ENTERキーを押したときに作成される文字列の末尾にある改行文字を削除します。
ナノを保存して終了します。CTRL+Xを押してから、ファイルを保存するように促されたらyを押してください。
もう一度プログラムを実行してください。
- ruby greeting.rb
今回は、名前を入力してENTERキーを押すと、予想通りの結果が表示されます。
Please enter your name. Sammy Hi, Sammy! I’m Ruby!
今、ユーザーからの入力を受け取ってそれを画面に表示するRubyプログラムがあります。
結論
入力のプロンプトを行い、結果を処理し、出力を表示する方法を知った今、プログラムをさらに拡張してみましょう。例えば、ユーザーの好きな色を尋ねて、プログラムが「私の好きな色は赤です」と言うようにしてみてください。また、この同じ技術を使用して、簡単なマッドリブプログラムも作成してみることさえできます。