Ruby

Rubyの関数について解説

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の関数は、引数、デフォルト引数、可変長引数、戻り値、ブロックなど、多くの機能をサポートしています。

スポンサーリンク

-Ruby