Rubyの関数(Rubyでは「メソッド」と呼ばれます)は、特定のタスクを実行するためのコードブロックです。
関数を使用することで、コードの再利用性が向上し、プログラムの構造が明確になります。
ここでは、Rubyの関数について詳しく解説します。
関数の定義と呼び出し
関数の定義
Rubyでは、def
キーワードを使用して関数を定義します。
構文
def 関数名(引数1, 引数2, ...)
# 関数の本体
# ここに関数が実行するコードを記述します
end
例
def greet(name)
puts "Hello, #{name}!"
end
関数の呼び出し
関数を呼び出すには、関数名を使います。引数がある場合は、関数名の後に括弧内に引数を渡します。
例
greet("Alice") # 出力: Hello, Alice!
引数
関数には、引数を指定することができます。引数を使うことで、関数の動作をカスタマイズできます。
例
def add(a, b)
a + b
end
result = add(2, 3)
puts result # 出力: 5
デフォルト引数
引数にはデフォルト値を設定することができます。デフォルト引数を指定すると、呼び出し時に引数が省略された場合にそのデフォルト値が使用されます。
構文
def 関数名(引数1 = デフォルト値1, 引数2 = デフォルト値2, ...)
# 関数の本体
end
例
def greet(name = "Guest")
puts "Hello, #{name}!"
end
greet("Alice") # 出力: Hello, Alice!
greet # 出力: Hello, Guest!
可変長引数
Rubyでは、可変長引数を使用して、任意の数の引数を受け取ることができます。可変長引数は、引数の前にアスタリスク(*
)を付けて定義します。
構文
def 関数名(*可変長引数)
# 関数の本体
end
例
def sum(*numbers)
numbers.sum
end
puts sum(1, 2, 3) # 出力: 6
puts sum(1, 2, 3, 4, 5) # 出力: 15
戻り値
関数は、値を戻すことができます。return
キーワードを使用して明示的に値を返すこともできますが、Rubyでは最後に評価された式が暗黙的に戻り値となります。
構文
def 関数名(引数)
# 関数の本体
return 戻り値 # または、最後に評価された式が戻り値となる
end
例
def multiply(a, b)
a * b
end
result = multiply(2, 3)
puts result # 出力: 6
ブロック
Rubyでは、関数にブロックを渡すことができます。ブロックは、関数の呼び出し時に渡されるコードの塊です。関数内でyield
キーワードを使用してブロックを呼び出すことができます。
例
def greet
puts "Hello"
yield if block_given?
puts "Goodbye"
end
greet { puts "How are you?" }
# 出力:
# Hello
# How are you?
# Goodbye
ブロック引数
関数にブロックを引数として渡すこともできます。ブロック引数は、引数リストの最後にアンパサンド(&
)を付けて定義します。
例
def greet(&block)
puts "Hello"
block.call if block
puts "Goodbye"
end
greet { puts "How are you?" }
# 出力:
# Hello
# How are you?
# Goodbye
まとめ
Rubyの関数(メソッド)は、特定のタスクを実行するためのコードブロックです。関数を使用することで、コードの再利用性が向上し、プログラムの構造が明確になります。Rubyの関数は、引数、デフォルト引数、可変長引数、戻り値、ブロックなど、多くの機能をサポートしています。