はじめに
「Hello, World!」プログラムは、コンピュータプログラミングにおける古典的で伝統的な伝統です。これは初心者向けの小さく完全な最初のプログラムであり、環境が正しく設定されていることを確認するための良い方法です。
このチュートリアルでは、このプログラムをRubyで作成する手順を説明します。ただし、プログラムをより興味深くするために、伝統的な「Hello, World」プログラムを変更して、ユーザに名前を尋ねるようにします。そして、挨拶にその名前を使用します。チュートリアルが終わると、プログラムを実行した際に次のように表示されるでしょう:
OutputPlease enter your name.
Sammy
Hello, Sammy! I'm Ruby!
前提条件
コンピュータ上にローカルなRuby開発環境を設定しておく必要があります。以下のチュートリアルのいずれかに従って、環境を設定してください:
- macOSにRubyをインストールし、ローカルプログラミング環境を設定する方法
- Ubuntu 16.04にRubyをインストールし、ローカルプログラミング環境をセットアップする方法
- Windows 10にRubyをインストールし、ローカルプログラミング環境をセットアップする方法
ステップ1 — 基本の「Hello, World!」プログラムの作成
「Hello, World!」プログラムを作成するには、nano
などのコマンドラインテキストエディタを開き、新しいファイルを作成します。
- nano hello.rb
テキストファイルがターミナルウィンドウで開かれると、プログラムを入力します。
puts "Hello, World!"
コードのさまざまな部分を解説しましょう。
puts
は、コンピュータにテキストを画面に表示するよう指示するRubyのメソッドです。
puts
メソッドの後には、引用符で囲まれた文字列である「Hello, World!」という文字列が続きます。引用符で囲まれた文字列は文字列と呼ばれます。プログラムが実行されると、puts
メソッドはこの文字列を画面に表示します。
いくつかのメソッド、例えばputs
メソッドは、Rubyにデフォルトで含まれています。これらの組み込みメソッドは、Rubyプログラムを作成する際に常に利用できます。また、独自のメソッドを定義することもできます。
nano
を終了して保存するには、CONTROL
キーとX
キーを入力し、ファイルを保存するかどうかのプロンプトが表示されたらy
を押してENTER
キーを押してください。
では、プログラムを試してみましょう。
ステップ2 – Rubyプログラムの実行
「Hello, World!」プログラムが書かれたら、プログラムを実行する準備が整いました。作成したファイルの名前の後にruby
コマンドを使用します。
- ruby hello.rb
プログラムが実行され、次の出力が表示されます:
OutputHello, World!
実際に起こったことを探ってみましょう。
ruby
コマンドを実行すると、Rubyのインタプリタが起動します。Rubyインタプリタは指定したファイルを読み込み、その内容を評価します。そして、puts
関数を呼び出すことで、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
の代わりに、ユーザーの名前として保存した値を取得します。
nano
を終了して保存し、ファイルを保存するように求められたらy
を押し、ENTER
を押します。
次に、次のコマンドでプログラムを実行します:
- ruby greeting.rb
名前を入力し、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プログラムができました。
結論
入力を促し、結果を処理し、出力を表示する方法を知ったので、プログラムをさらに拡張してみてください。 たとえば、ユーザーの好きな色を尋ね、プログラムが自分の好きな色を赤と言うようにしてみてください。 また、同じテクニックを使用してシンプルなマッドリブプログラムを作成することも試してみてください。
Source:
https://www.digitalocean.com/community/tutorials/how-to-write-your-first-ruby-program