【Ruby】見るだけで理解する!プログラミング言語 Ruby
なぜ Ruby を学ぶのか
今回は Ruby というプログラミング言語を学んでいきます。
Ruby は1995年に発表された日本発祥のプログラミング言語です。名前は聞いたことある方は多いではないでしょうか。よくある質問として「Python とどっちが良いの?」と聞かれます。その答えは Ruby 作者の言葉を引用するにつきます。
Ruby は言語の設計思想として、利用者がストレスなく楽しんで書けるようにと設計されています。実際、私も Ruby を利用しはじめて5年以上経ちますが、ストレスなく楽しんで書けています。
また、Ruby には Ruby on Rails という世界的に普及している Web アプリケーションを作るためのフレームワークがあります。GitHub, Twitter や Airbnb なども Ruby on Rails で作成されています。そして、日本でも Cookpad, SmartHR など Rails を使って Web アプリケーションを作成している企業はたくさんあります。一度 Ruby を学ぶと、日本はもちろん世界でも活躍できるエンジニアになれます。
まだプログラミング未経験で、これから楽しく Web アプリケーションを作りたい人であれば、Ruby は最適な言語なので自信を持って学んでいきましょう。
文字の表示
まず、chaper1.rb というファイルを作成します。
puts 'hello!' と書いて、保存をします。保存をした後に、ruby hello.rb を実行すると作成した ruby ファイルを実行することになり、コンソールに hello! と表示されます。puts というのは Ruby が用意している関数で、引数に指定したものを出力させる関数です。
puts 'hello!'
$ ruby chapter1.rb
hello!
計算結果の表示
Ruby に計算をさせることも可能です。
puts 1 + 1 であったり、 256 * 256 といった計算をさせることができます。
puts 1 + 1
puts 256 * 256
$ ruby chapter1.rb
2
65536
パソコン一台あって ruby ファイルがあれば、小学生が解くような課題も ruby に計算させることができるということですね。
変数の使用
では、次は変数を使ってみます。以下のように書いてファイルを保存し、実行してみてください。
one = 1
puts one + one
ruby chapter1.rb
2
変数の何が便利かというと、一回定義すると使いまわせるところです。
two = 2
puts two * 50
puts two / 2
puts "数値を出力します: #{two}"
ruby chapter1.rb
100
1
数値を出力します: 2
ちなみに変数には種類があります。ここではローカル変数とインスタンス変数を紹介します。頭に何もつけずに定義するとローカル変数、頭に@マークをつけるとローカル変数になります。現時点では、インスタンス変数の方がちょっと強い変数だとだけ覚えておきましょう。
three = 3
@three = 3
puts three
puts @three
ruby chapter1.rb
3
3
関数の使用
次に関数の紹介をします。先ほど紹介した puts という関数は ruby が用意している関数ですが、関数は自分で自由に作成することができます。
one = 1
def increment
one + 1
end
puts increment
ruby chapter1.rb
2
関数は最後にかっこをつけて引数を受け取ることもできます。
def increment(num)
num + 1
end
number = 5
puts increment(number)
ruby chapter1.rb
6
クラスを定義する
では、最後にクラスの説明です。クラスは現実世界をシステムに落とし込むための設計書です。クラスの中には現実世界の登場人物の振る舞いや属性を関数として定義します。
class Human
def greet
puts '挨拶をしました。'
end
def catch
puts '捕まえました。'
end
def release
puts '逃しました。'
end
end
me = Human.new
me.greet
me.catch
me.release
ruby chapter1.rb
挨拶をしました。
捕まえました。
逃しました。
では、魚釣りの結果を記録するアプリケーションをイメージしてください。その場合、どのようなクラスになるか考えてみましょう。
class Fish
def name
'魚'
end
end
class Human
def chatch(target_name)
puts "#{target_name}を捕まえました。データベースのカウントをプラス1します。"
end
def release(target_name)
puts '#{target_name}を逃しました。データベースのカウントをマイナス1します。'
end
end
me = Human.new
fish = Fish.new
fish_name = fish.name
me.catch(fish_name)
me.catch(fish_name)
me.release(fish_name)
ruby chapter1.rb
魚を捕まえました。データベースのカウントをプラス1します。
魚を捕まえました。データベースのカウントをプラス1します。
魚を逃しました。データベースのカウントをマイナス1します。
現実世界にある人や魚などの実態はクラスとして定義することができます。そして、それぞれどのような振る舞いを持っているのだろうか?と考え、クラスの中に振る舞いを関数で定義します。そして、例えば、その振る舞いの中でデータベースの更新をする処理を加えれば、普段私たちが扱っているアプリケーションのようになります。
エンジニアは現実世界からクラスと振る舞いの設計をし、コードに落とし込んだ上でそれを使いこなし、アプリケーションとして動作させています。
便利リンク
学習する上でオススメのガイドへのリンクを貼っておきます。
興味のある人は見てください。
記事が良いと思ったらサポートをお願いします!