DACエンジニアブログ:アドテクゑびす界

DACのエンジニアやマーケター、アナリストが執筆するアドテクの技術系ブログです。

【未経験からのRuby on Rails – 第2回】Rubyのプログラムを書いてみる(Mac)

こんにちは。新卒1年目のmatsuariです。

前回はRubyとは何か、簡単にご紹介をしましたが、 今回は実際にRubyファイルを作成して、プログラムを書いてみるところまでご紹介していけたらと思います。

Mac環境のプログラミング初心者向けです。


はじめに、Rubyのプログラムを書くためのファイルを作成します。

 

Rubyファイルを作成する

ここでは、Sublime Textというテキストエディタを利用します。

Sublime Textにはバージョン2と3があり、バージョン3はβ版です。

バージョン2のダウンロードはこちらから Sublime Text 2 - Download

バージョン3のダウンロードはこちらから Sublime Text 3 - Download

どちらのバージョンを使うと良いかや、Sublime Textが選ばれている理由については こちらをご覧ください。 テキストエディター「Sublime Text」の導入 - Build Insider

Sublime Textをダウンロードできたら、Sublime Textを開き、新規ファイルに名前を付けて保存します。

新規ファイルを開いている状態で、「command + s」を押すと「保存」ができます。

【helloworld.rb】という名前のRubyファイルをデスクトップに保存します。

※注:最後に「rb」というRubyの拡張子をつけるのをお忘れなく!

 

ターミナルに“Hello World !”と表示する

Sublime Textを開き、上記のソースコードをファイルに記述します。

これだけで、画面上に“Hello World !”と表示するプログラムが書けました。

次にターミナルを用いて、Rubyのプログラムを実行してみましょう。

[code lang="shell"] $ cd Desktop # helloworld.rbファイルがあるDesktopに移動する $ ruby helloworld.rb # Rubyプログラムの実行 Hello World ! [/code]

 

【helloworld.rb】ファイルがある「Desktop」に移動してからRubyプログラムを実行しないと、エラーが出るので注意が必要です!

rubyコマンドによって、Rubyプログラムを実行することができました。

 

ターミナル上でrubyのプログラムを実行できる「irb」

ここまでで、Sublime Textに”Hello World !”という文字列を記述しましたが、 このような文字や数、時間、色などは、Rubyで扱えるようオブジェクトとしてデータ化します。

Ruby で扱える全ての値はオブジェクトで、文字列はRubyのオブジェクトの1つです。

その他にも、数値、配列、日付、時刻など、たくさんオブジェクトがありますが、 代表的な

  • 文字列オブジェクト
  • 数値オブジェクト

について、詳しくご紹介させていただきたいと思います。

「文字列オブジェクト」と「数値オブジェクト」について説明する前に、ターミナルから簡単なrubyのプログラムを動かすことのできる「irb」をご紹介します。

[code lang="ruby"] $ irb irb(main):001:0> "irb is useful." => "irb is useful." # 実行結果 [/code]

ターミナルに、「irb」と入力すると、起動します。

irbを起動した後、上記の例のようにプログラムを入力してEnterキーを押すと実行でき、結果が返ってきます。 ここでは、”irb is useful.”という文字列を生成したため、”irb is useful.”という文字が結果として返ってきました。

irbで日本語を入力すると、文字化けする可能性があるので、注意してください!

[code lang="ruby"] $ irb irb(main):001:0> "irb is useful." => "irb is useful." irb(main):002:0> exit # irbを終了 $ [/code]

irbを終了する時は、「exit」と入力してEnterキーを押します。

irbは、簡単なrubyのプログラムを動かす練習をするのに便利です!

 

文字を表示する、文字列オブジェクト

[code lang="ruby"] "Hello World !" # ダブルクオーテーション 'Hello World !' # シングルクオーテーション [/code]

 

文字を「 ”(ダブルクオーテーション) 」 、もしくは「 ’(シングルクオーテーション) 」で囲むことで、文字列を生成することができます。

「 ”(ダブルクオーテーション) 」 、「 ’(シングルクオーテーション) 」 どちらでも文字列を生成することは可能ですが、 「 ”(ダブルクオーテーション) 」のみ、特殊文字と変数展開が使用可能である という違いがあります。

はじめに、特殊文字とは・・・ テキストとして入力できない、特殊な文字のことで、 代表的な例が「改行」です。

例として、「\n (改行)」を使用すると・・・

[code lang="ruby"]

ダブルクオーテーションの場合

a = "Hello \n World"

puts a

Hello World

シングルクオーテーションの場合

b = 'Hello \n World'

puts b

Hello\n World [/code]

 

「 ”(ダブルクオーテーション) 」の場合は、改行が正しく反映されていますが、 「 ’(シングルクオーテーション) 」の場合は、改行が反映されません。

その他、「\t(タブ)」「\s(空白・スペース)」「\b(バックスペース)」など、 様々な特殊文字があります。

次に、変数展開とは・・・ 変数展開を使用する場合の例を挙げて説明します。

program = “Ruby”という変数を使いたい時・・・

[code lang="ruby"] program = ”Ruby”

ダブルクオーテーションの場合

c = "Hello World, #{program}"

puts c

Hello World, Ruby

シングルクオーテーションの場合

d = 'Hello World, #{program}'

puts d

Hello World, #{program} [/code]

 

#{ }の波括弧の中に変数名「program」を入れると、 「 ”(ダブルクオーテーション) 」の場合は展開してくれますが、 「 ’(シングルクオーテーション) 」の場合はそのまま出てしまっています。

このように、変数展開を利用することで、文字列の中に変数等を組み込むことができます。

#{ }の波括弧の中には、文字列・数値・演算式・変数・配列などを利用することが可能です。

 

文字列の操作

次に文字列の連結をしてみます。

[code lang="ruby"] irb(main):001:0> "Hello" + "World !"  # 文字列を連結する => "Hello World !"

irb(main):002:0> "#{"Hello" "World !"}" # 文字列を連結する => "Hello World !" [/code]

 

2つの文字列は、「+」もしくは「#{ }」を使って連結させることができます。

文字列を繰り返す場合は・・・

[code lang="ruby"] $ irb irb(main):001:0> puts "Ruby" * 10 RubyRubyRubyRubyRubyRubyRubyRubyRubyRuby => nil [/code]

 

*(アスタリスク)を使って、文字列を繰り返し表示させることができます。

 

数値の操作

[code lang="ruby"] irb(main):001:0> puts 100  # putsを用いて、数値を入力する 100 => nil

irb(main):002:0> puts -1.11 # 小数、負の値も出力可能 -1.11 => nil [/code]

 

数字を入力するたけで、数値オブジェクトを生成することができます。 数字は整数だけでなく、小数や負の値も出力することが可能です。

 

文字列と数字の連結

では、文字と数字を連結するにはどうすれば良いのでしょうか。

[code lang="ruby"] irb(main):001:0> puts "This is " + 100.to_s + "yen." # 文字列と数値を連結する => "This is 100yen." [/code]

to_sメソッドを利用することで、文字列と数字を連結することができます。

 

to_sメソッドは、数値オブジェクトを文字列に変換してくれる、数値オブジェクトのメソッドです。つまり、to_sメソッドによって「100」という数値が文字列に変換され、連結されたことになります。

※ 逆に文字列を数字に変換したい場合は、to_iメソッドを使用します!

 

「メソッド」とは何なのか

ところで・・・ to_sメソッドについてお話しましたが、このメソッドについてもご紹介しておきたいと思います。

オブジェクトに何らかの処理を行わせる場合はメソッドとして定義しておく必要があり、メソッドを使ってオブジェクトを操作します。

メソッドによって関数や処理が呼ばれ、処理の終わりに呼び出されて返ってくる値を「返り値」と言います。

「メソッド」、「返り値」は頻出ワードでよく使用します。様々な「メソッド」、「返り値」がありますので、 実際に必要となった時に検索して、覚えて・・・を繰り返していきたいですね!

 

Rubyの演算子

最後に、基本となるRubyの演算子についても書いておきたいと思います。

最低限覚えておくべき、「代数演算子」「比較演算子」について、順に説明していきます。

 

代数演算子

[code lang="ruby"] a + b # 加算 a - b # 減算 a * b # 乗算 a / b # 除算 a % b # 剰余(a を b で割った余り) a ** b # a の b 乗 [/code]

比較演算子

[code lang="ruby"] a < b # a は b よりも小さい a > b # a は b よりも大きい a <= b # a は b 以下である a >= b # a は b 以上である a == b # a と b は等しい a != b # a と b は等しくない [/code]

こちらもirbを使って、やってみます!

ここでは、aに「10」、bに「5」を代入してみたいと思います。

 

代数演算子 – irbを使ってやってみる

[code lang="ruby"] irb(main):001:0> 10 + 5 => 15

irb(main):002:0> 10 - 5 => 5

irb(main):003:0> 10 * 5 => 50

irb(main):004:0> 10 / 5 => 2

irb(main):005:0> 10 % 5 => 0

irb(main):006:0> 10 ** 5 => 100000 [/code]

それぞれ、計算結果が「返り値」として返ってきます。

比較演算子– irbを使ってやってみる

[code lang="ruby"] irb(main):001:0> 10 < 5 => false

irb(main):002:0> 10 > 5 => true

irb(main):003:0> 10 <= 5 => false

irb(main):004:0> 10 >= 5 => true

irb(main):005:0> 10 == 5 => false

irb(main):006:0> 10 != 5 => true [/code]

値同士を比較する時に使用する比較演算子では、返り値は true / false となります。

式が正しい場合は「true」、式が間違いの場合は「false」が返り値となります。 その他、いろいろな値を代入して、試してみて下さい!

 


以上、今回はRubyファイルを作成し、

irbを使ってプログラムを書いてみるところまでご紹介させていただきました。 基礎ですが大事な内容です!

過去記事

【未経験からのRuby on Rails – 第1回】楽しく書けるプログラミング言語 “Ruby” とは