4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Ruby】初学者向け-メソッドの基本について①

Last updated at Posted at 2024-10-17

本記事ではメソッドの基本的な文法と使用方法をまとめています。

目次
・メソッドの定義方法
・キーワード引数

メソッドについて

メソッドの定義方法

example_1.rb
def <メソッド> <引数リスト>
    # ここに処理を記述
end

引数リストは「()かっこ」をつけることも、省略することもできる

example_2.rb
a = 1
b = 2
def test  a,b
    a + b
    => 3
end

一番最後に行われた処理が結果(返り値)となる
上記のように定義したメソッドは、メソッド名を記述して呼び出すことができる。

def式で指定する引数は「仮引数」と呼ぶ

メソッドに引数が設定されている場合は、メソッド名に続いて引数を設定して呼び出す。
メソッドを実行する際に記述する引数を「実引数」と呼ぶ。

example_3.rb

# メソッドの呼び出しと実引数の設定
test(3,4)

# 呼び出されたメソッドにて、設定された実引数をもとに処理を行う。ここではaとbが仮引数となる
def test  a,b
    a + b
    => 7
end

指定された実引数の数が仮引数の数よりも少ない場合、ArgumentErrorが発生するため、
仮引数ではデフォルト値を指定できる。

example_4.rb
# ここでは変数bにデフォルト値を設定している
def test (a, b=100)
    a + b
end

# 仮引数の数 = 実引数の数の場合
test(9,10) => 19

# 仮引数の数 > 実引数の数
test(5) => 105

# 仮引数でデフォルト値を設定していない変数aに対しても引数を渡さない場合
test => ArgumentError

キーワード引数
仮引数とデフォルト値をコロン「:」で結び付けて定義ができる方法
キーワード引数を用いてメソッドを定義すると以下のようになる。

example_5.rb
    def test(a:, b: 100)
        a + b
    end

    test(a: 5, b:9 ) = > 14
    test(a: 5) = > 105

    # 仮引数でデフォルト値を設定していない変数aに対してもキーワード引数を渡さない場合
    test => ArgumentError

    # キーワード引数に存在しない引数名を渡した場合
    test(a:100, c:120) => ArgumentError

キーワード引数に任意の引数を使用したい場合は以下のように定義すればArgumentErrorが発生しない

example_6.rb
    def test2(a:, b: 100, **z)
        p z
        a + b
    end

    # 仮引数として設定していない変数cとdの値も受け取ることができ、エラーが発生しなくなる
    test2(a: 2, c: 100, d:200 ) => 102
    コンソール上に{:c => 100, d=> 200}が出力される
4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?