Looking for ruby Answers? Try Ask4KnowledgeBase
Looking for ruby Keywords? Try Ask4Keywords

Ruby Languageメソッド


前書き

Rubyの関数は、一連のアクションを実行するための、組織化された再利用可能なコードを提供します。関数はコーディングプロセスを簡素化し、冗長ロジックを防止し、コードを簡単にフォローします。このトピックでは、Rubyにおける関数、引数、パラメータ、yield文、スコープの宣言と利用について説明します。

備考

メソッドとは、1つまたは複数のオブジェクトに関連付けられ、名前に加えてパラメータのリストによって一般的に識別される名前付きのコードブロックです。

def hello(name)
  "Hello, #{name}"
end

メソッド呼び出しは、メソッド名、呼び出されるオブジェクト(受信者とも呼ばれる)、および名前付きメソッドのパラメーターに割り当てられた0個以上の引数値を指定します。メソッドで評価された最後の式の値は、メソッド呼び出し式の値になります。

hello("World")
# => "Hello, World"

受信者が明示的でない場合、それはselfです。

self
# => main

self.hello("World")
# => "Hello, World"

Rubyプログラミング言語の書籍で説明されているように、多くの言語は、関連オブジェクトを持たない関数と、受信側オブジェクトで呼び出されるメソッドとを区別します。 Rubyは純粋にオブジェクト指向言語なので、すべてのメソッドは真のメソッドであり、少なくとも1つのオブジェクトに関連付けられています。

メソッドパラメータの概要

タイプメソッドシグネチャ呼び出しの例割り当て
Rは等しく def fn(a,b,c) fn(2,3,5) a=2, b=3, c=5
Vアリアドック def fn(*rest) fn(2,3,5) rest=[2, 3, 5]
D efault def fn(a=0,b=1) fn(2,3) a=2, b=3
K eyword def fn(a:0,b:1) fn(a:2,b:3) a=2, b=3

これらの引数型は、バリデーショナル関数を作成するために想像できるどんな方法でも組み合わせることができます。関数への引数の最小数は、署名に必要な引数の量と等しくなります。余分な引数は、デフォルトのパラメータに割り当てられ、次に*restパラメータに割り当てられます。

タイプメソッドシグネチャ呼び出しの例割り当て
R、D、V、R def fn(a,b=1,*mid,z) fn(2,97) a=2, b=1, mid=[], z=97
fn(2,3,97) a=2, b=3, mid=[], z=97
fn(2,3,5,97) a=2, b=3, mid=[5], z=97
fn(2,3,5,7,97) a=2, b=3, mid=[5,7], z=97
R、K、K def fn(a,g:6,h:7) fn(2) a=2, g=6, h=7
fn(2,h:19) a=2, g=6, h=19
fn(2,g:17,h:19) a=2, g=17, h=19
VK def fn(**ks) fn(a:2,g:17,h:19) ks={a:2, g:17, h:19}
fn(four:4,five:5) ks={four:4, five:5}

メソッド 関連する例