🦘

Ruby 基本構文

2023/07/22に公開

Rubyの基本的な構文など!

変数(Variables)

変数名は小文字で始まります。
変数の値は変更することができます。それが変数(variable)と呼ばれる理由です。

例:
num = 5
num = 10  # numの値を10に変更する

定数(Constants)

定数名は大文字で始まります。
定数は一度設定すると、理論的にはその値を変更することはできません。
しかし、Rubyでは定数の値を変更することができますが、警告が表示されます。

例:
Pi = 3.14
Pi = 3.14159  # 定数の値を変更すると警告が表示されます

このコードを実行すると、Rubyは以下のような警告を出力します!

warning: already initialized constant Pi
warning: previous definition of Pi was here

Rubyでは、定数を変更することは可能ですが、定数の本来の目的
(つまり一度設定したら変更しない)を無視すると混乱を招く可能性があるため、推奨されません!!

変数の宣言

Rubyでは、変数の宣言は特に型を指定することなく行います。
以下は、整数、文字列、配列、ハッシュを格納する例です。

# 変数の宣言と代入
num = 5       # 整数値5を変数numに代入します。
str = "Hello, Ruby!"   # 文字列"Hello, Ruby!"を変数strに代入します。
array = [1, 2, 3, 4, 5]  # 配列[1, 2, 3, 4, 5]を変数arrayに代入します。
hash = {"key1" => "value1", "key2" => "value2"}  # ハッシュを変数hashに代入します。ハッシュはキーと値の組み合わせを持つデータ構造です。

制御構文

以下は、if文とループの例です。

# if文
if num > 0
  puts "num is positive."    # numが0より大きい場合にこの行が実行されます。
elsif num < 0
  puts "num is negative."    # numが0より小さい場合にこの行が実行されます。
else
  puts "num is zero."    # 上記のどちらも当てはまらない場合(つまりnumが0の場合)にこの行が実行されます。
end

# ループ
5.times do |i|    # 5回ループします。ループの回数(0から4までの値)は変数iに入ります。
  puts i    # 現在のiの値を出力します。
end

array.each do |elem|    # arrayの各要素についてループします。各要素は変数elemに入ります。
  puts elem    # 現在のelemの値を出力します。
end

関数(メソッド)

関数はdefキーワードを使用して定義します。

# 関数の定義と呼び出し
def greet(name)    # greetという名前の関数を定義します。この関数は1つの引数(name)を取ります。
  puts "Hello, #{name}!"   # "Hello, "と引数で与えられたnameの値を連結した文字列を出力します。
end

greet("Alice")    # greet関数を呼び出し、"Alice"という文字列を引数として渡します。

クラスとオブジェクト

クラスはclassキーワードを使って定義し、その中でメソッドを定義することができます。
また、initializeメソッドはクラスのインスタンスが生成される際に
自動的に呼び出される特殊なメソッドで、コンストラクタとも呼ばれます。

# クラスの定義とインスタンス生成
class Dog    # Dogという名前のクラスを定義します。
  def initialize(name)   # initializeという特殊なメソッド(コンストラクタ)を定義します。このメソッドは新しいインスタンスが生成される際に自動的に呼び出されます。
    @name = name    # 引数で与えられたnameの値をインスタンス変数@nameに格納します。インスタンス変数はクラス内の他のメソッドからもアクセス可能です。
  end

  def bark    # barkという名前のメソッドを定義します。
    puts "#{@name} says: Woof!"    # "#{@name} says: Woof!"という文字列を出力します。#{@name}はインスタンス変数@nameの値に置き換えられます。
  end
end

dog = Dog.new("Fido")    # Dogクラスの新しいインスタンスを生成し、それを変数dogに格納します。この際、"Fido"という文字列がinitializeメソッドの引数として渡されます。
dog.bark    # dogオブジェクト(Dogクラスのインスタンス)のbarkメソッドを呼び出します。これにより"Fido says: Woof!"と出力されます。

Discussion