#9 Rubyで学ぶ関数の基本

Rubyでは、関数のことを「メソッド」と呼びますが、Pythonの関数のように手軽に定義できます。この記事では、Rubyにおけるメソッドの基本を解説します。

メソッドを作ってみる

Rubyでは`def`というキーワードを使います。

def greet(name) puts "こんにちは、#{name}さん" end greet("太郎")

メソッドの終わりには`end`を書きます。中括弧`{}`を使う言語に慣れていると最初は違和感があるかもしれませんが、Rubyのコードでは`end`が随所に登場するので早めに慣れておきましょう。

値を返すメソッド

Rubyのメソッドは、`return`を書かなくても、最後に評価した値が自動的に戻り値になります。

def add(a, b) a + b end

もちろん、明示的に`return`を書くこともできます。条件によって途中で処理を打ち切って値を返したい場合は、`return`を使う必要があります。

def check(age) return "未成年です" if age < 20 "成人です" end

デフォルト引数

def greet(name = "ゲスト") puts "こんにちは、#{name}さん" end

引数を渡さずに呼び出した場合は`"ゲスト"`が使われ、渡した場合はその値で上書きされます。複数の引数にデフォルト値を設定することもできますが、デフォルト値のない引数を後ろに置くと構文エラーになる点には注意しましょう。

キーワード引数

引数が増えてくると、呼び出し側で「どの値が何を表しているか」が分かりにくくなります。そんなときはキーワード引数が便利です。

def greet(name:, honorific: "さん") puts "こんにちは、#{name}#{honorific}" end greet(name: "太郎", honorific: "くん")

呼び出し時に引数名を明示するため、順序を気にせず渡せるうえ、コードの意図も読み取りやすくなります。

Rubyならではの注意点

「最後に評価した値が自動的に戻り値になる」という仕組みは、Rubyのシンプルさを表す特徴ですが、意図せず余計な値が返ってしまうこともあります。複数の処理があるメソッドでは、何が最後に評価されているかを意識するか、明示的に`return`を書いておくと安心です。また、Rubyのメソッド名の末尾に`?`や`!`を付ける慣習(例: `empty?`、`save!`)もよく使われます。`?`は真偽値を返すメソッド、`!`は破壊的な変更(元のオブジェクト自体を書き換える)を行うメソッドを表す目印として使われます。

まとめ

Rubyのメソッドは`def`・`end`で定義し、`return`を省略しても最後の値が返ります。デフォルト引数やキーワード引数、`?`・`!`という命名の慣習もあわせて理解し、読みやすいコードを書きましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Rubyをもっと学びたい方には「プロを目指す人のためのRuby入門[改訂2版]」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本