1. Rubyとは
Rubyは、1995年に日本人のまつもとゆきひろ氏によって開発されたプログラミング言語です。
人間中心の設計思想を持ち、読みやすく、書きやすいことを目指して設計されました。
2. 変数と型
Rubyは動的型付け言語で、変数に型の宣言は必要ありません。変数を宣言するには等号(=)を使って値を割り当てます。たとえば、以下のように整数、浮動小数点数、文字列を割り当てることができます。
ソースコード例
1 2 3 |
num = 42 pi = 3.14159 message = "Hello, World!" |
Rubyには主に以下のデータ型があります:
Rubyの主なデータ型
- 整数(Integer)
- 浮動小数点数(Float)
- 文字列(String)
- 配列(Array)
- ハッシュ(Hash)
- シンボル(Symbol)
- 真偽値(TrueClass, FalseClass)
- nil
各型の詳細については、それぞれの段落で解説します。
また、Rubyでは変数名の先頭に特定の文字を付けることで、変数のスコープ(有効範囲)を変更することができます。たとえば、先頭に$を付けるとグローバル変数、@@を付けるとクラス変数、@を付けるとインスタンス変数になります。
3. 制御構文
3-1.条件分岐: if文
Rubyの制御構文は他のプログラミング言語と非常に似ています。
例えば、if文を用いて条件分岐を行うことができます。
ソースコード例
1 2 3 4 5 6 |
age = 20 if age >= 20 puts "You are an adult." else puts "You are a minor." end |
このコードは、age変数が20以上かどうかを判断し、それに応じたメッセージを出力します。
したがって、出力結果は"You are an adult."となります。
出力結果
You are an adult.
KindleUnlimited会員であれば、全ての本をご覧頂けます。 配列、イテレータ、ブロックを理解すれば、Rubyプログラミングの世界が変わる 第1版
3-2. ループ: for文
Rubyには、繰り返し処理を行うためのfor文もあります。
次は、for文を用いて配列の要素を順番に出力する例です。
ソースコード例
1 2 3 4 |
numbers = [1, 2, 3, 4, 5] for number in numbers puts number end |
出力結果
1
2
3
4
5
4. 配列
Rubyの配列は、いくつでも値を格納することができます。
以下に、配列の作成とその要素へのアクセス方法を示します。
ソースコード例
1 2 3 4 |
fruits = ["apple", "orange", "grape"] puts fruits[0] puts fruits[1] puts fruits[2] |
出力結果
apple
orange
grape
4-1. 配列: 繰り返し処理
配列の要素を順番に処理するには、eachメソッドを使用します。
以下に、eachメソッドを用いて配列の要素を順番に出力する例を示します。
ソースコード例
1 2 3 |
fruits.each do |fruit| puts fruit end |
出力結果
apple
orange
grape
4-2. 配列とfor文を組み合わせる
Rubyには、繰り返し処理を行うためのfor文もあります。
次は、for文を用いて配列の要素を順番に出力する例です。
ソースコード例
1 2 3 4 |
numbers = [1, 2, 3, 4, 5] for number in numbers puts number end |
出力結果
1
2
3
4
5
5. ハッシュ
Rubyのハッシュは、キーと値の組み合わせでデータを格納することができます。
以下に、ハッシュの作成とその要素へのアクセス方法を示します。
ソースコード例
1 2 3 |
person = { "name" => "John", "age" => 30 } puts person["name"] puts person["age"] |
出力結果
John
30
6. クラスとインスタンス
Rubyでは、クラスとインスタンスを使ってオブジェクト指向プログラミングを実現します。
クラスは設計図のようなもので、インスタンスはその設計図を基に作られた実体です。
以下に、クラスとインスタンスの作成例を示します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Person def initialize(name, age) @name = name @age = age end def introduce "Hello, my name is #{@name} and I'm #{@age} years old." end end john = Person.new("John", 30) puts john.introduce |
出力結果
Hello, my name is John and I'm 30 years old.
7. オブジェクト指向
Rubyはオブジェクト指向プログラミング言語で、それにはカプセル化、継承、ポリモーフィズムの三つの主要な概念が含まれています。
これらを理解することで、Rubyの力を最大限に引き出すことが可能です。
7-1. カプセル化
カプセル化は、データ(属性)とそのデータを操作するためのメソッド(関数)を一つの単位(オブジェクト)にまとめることです。
以下の例では、Personクラスが名前と年齢というデータと、それを表示するintroduceメソッドをカプセル化しています。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Person def initialize(name, age) @name = name @age = age end def introduce "Hello, my name is #{@name} and I'm #{@age} years old." end end john = Person.new("John", 30) puts john.introduce |
出力結果
Hello, my name is John and I'm 30 years old.
7-2. 継承
継承とは、既存のクラスの属性(データ)やメソッド(関数)を引き継ぎながら新しいクラスを定義することを指します。これにより、コードの再利用と保守性が向上します。
下記に示すソースコードでは、Personクラスから属性とメソッドを引き継いだEmployeeクラスを作成します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Employee < Person def initialize(name, age, job) super(name, age) @job = job end def introduce "Hello, my name is #{@name}, I'm #{@age} years old and I work as a #{@job}." end end john = Employee.new("John", 30, "Engineer") puts john.introduce |
出力結果
Hello, my name is John, I'm 30 years old and I work as an Engineer.
7-3. ポリモーフィズム
ポリモーフィズムは、「多形性」を意味し、同じ名前のメソッドが異なる振る舞いをするという特性を指します。
下記のソースコードでは、PersonクラスとEmployeeクラスが同じ名前のメソッド(introduce)を持つが、その振る舞いが異なることを示しています。
ソースコード例
1 2 3 4 5 |
person = Person.new("Alice", 25) employee = Employee.new("Bob", 35, "Doctor") puts person.introduce puts employee.introduce |
出力結果
Hello, my name is Alice and I'm 25 years old.
Hello, my name is Bob, I'm 35 years old and I work as a Doctor.
8. まとめ
この記事では、Rubyの基本的な構文と概念を解説しました。変数と型、制御構文、配列とハッシュ、クラスとインスタンス、そしてオブジェクト指向の基本であるカプセル化、継承、ポリモーフィズムについて見てきました。
Rubyは非常に表現力豊かで柔軟性のある言語であり、その美しい構文と豊富な機能は多くの開発者を魅了しています。しかし、その魅力を十分に引き出すためには、まずは基本的な知識をしっかりと理解することが大切です。
この記事がRubyの学習の一助となれば幸いです。プログラミングは実践的な学習が一番なので、ぜひ手を動かしてみてください。新たな世界が広がることでしょう。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!