Latest web development tutorials

Rubyのメソッド

Rubyのメソッドは、他のプログラミング言語の関数に似ています。 1つのユニットに1以上の重複文を束ねるためのRubyの方法。

メソッド名は小文字で開始する必要があります。 あなたはメソッド名の先頭として大文字である場合、Rubyは、おそらく間違って呼び出しを解析し、その結果、定数として使用します。

この方法は、他に定義されるべきで呼び出す前に、Rubyは未定義のメソッドコール例外が生成されます。

文法

def method_name [( [arg [= default]]...[, * arg [, &expr ]])]
   expr..
end

次のようにだから、あなたは、簡単な方法を定義することができます。

def method_name 
   expr..
end

あなたは次のように、パラメータを受け入れるようにメソッドを定義することができます。

def method_name (var1, var2)
   expr..
end

あなたは、パラメータのデフォルト値を設定することができ、パラメータはデフォルト値を渡すように要求されないメソッド呼び出しの場合:

def method_name (var1=value1, var2=value2)
   expr..
end

あなたがメソッドを呼び出したいときは、以下に示すように、単に、メソッド名を使用します。

method_name

しかし、あなたはパラメータ、あなたがメソッド名を書くとき、たとえば、取らなければならないパラメータを持つメソッドを呼び出します。

method_name 25, 30

パラメータ最大の欠点を使用する方法は、メソッドを呼び出すときに、パラメータの数を覚えておく必要があります。 たとえば、あなたは2つだけ引数を渡す3パラメータ法を受け入れる1であれば、Rubyはエラーが表示されます。

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def test(a1="Ruby", a2="Perl")
   puts "编程语言为 #{a1}"
   puts "编程语言为 #{a2}"
end
test "C", "C++"
test

上の例の出力は実行します。

编程语言为 C
编程语言为 C++
编程语言为 Ruby
编程语言为 Perl

メソッドの戻り値

Rubyは各メソッドは、デフォルト値を返します。 この値は、最後の文で返された値です。 例えば:

def test
   i = 100
   j = 10
   k = 0
end

このメソッドを呼び出す場合、変数kの最終的な宣言を返します。

Rubyのreturn文

return文でRubyはRubyのメソッドから1つまたは複数の値を返すために使用されます。

文法

return [expr[`,' expr...]]

以上の二つの式が与えられた場合、これらの値を含む配列が戻り値になります。 何の式が指定されていない場合、nilが返り値となります。

return

或

return 12

或

return 1,2,3

次の例を考えてみます。

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def test
   i = 100
   j = 200
   k = 300
return i, j, k
end
var = test
puts var

上の例の出力は実行します。

100
200
300

可変数の引数

のは、あなたがこのメソッドを呼び出すときに、あなたはまた、2つのパラメータを渡す必要があり、二つの引数を取るメソッドを宣言しましょう。

しかし、Rubyはあなたが可変数のパラメータを宣言することができます。 それでは、次の例を見てみましょう:

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

def sample (*test)
   puts "参数个数为 #{test.length}"
   for i in 0...test.length
      puts "参数值为 #{test[i]}"
   end
end
sample "Zara", "6", "F"
sample "Mac", "36", "M", "MCA"

このコードでは、サンプルのメソッドを宣言している、パラメータ・テストを受け入れます。 しかし、このパラメータは可変パラメータです。 このパラメータは、変数の異なる数で提供されてもよいことを意味します。 上の例の出力は実行します。

参数个数为 3
参数值为 Zara
参数值为 6
参数值为 F
参数个数为 4
参数值为 Mac
参数值为 36
参数值为 M
参数值为 MCA

クラスメソッド

ときに外部、クラスデフォルトで定義されているメソッドのメソッドは、 プライベートとしてマークメソッドがクラスで定義されている場合一方、デフォルトはpublicとしてマークされます。

可視性とプライベートタグのデフォルトの方法は、パブリックまたはプライベートにモジュール(モジュール)を介して変更することができます

あなたはクラスメソッドにアクセスしたいときは、最初のクラスをインスタンス化する必要があります。 次に、オブジェクトを使用して、あなたはクラスの任意のメンバーにアクセスすることができます。

Rubyはインスタンスメソッドなしでアクセスする方法を提供します。 のは、クラスメソッドを宣言し、アクセスする方法を見てみましょう:

class Accounts
   def reading_charge
   end
   def Accounts.return_date
   end
end

我々はすでにどのようにメソッドのRETURN_DATE文を知っています。 これは、宣言にドットの後にメソッド名が続くドット、続いて、クラス名の後にあります。 次のように、直接、クラスメソッドにアクセスすることができます。

Accounts.return_date

このメソッドにアクセスするには、オブジェクトクラスのアカウントを作成する必要はありません。

Rubyのエイリアスステートメント

この文は、別名からのメソッドまたはグローバル変数として使用されています。 別名は、メソッド本体内で定義することはできません。 メソッドがオーバーライドされた場合でも、別名メソッドは、メソッドの現在の定義を維持します。

エイリアスからグローバル変数($ 1、$ 2、...)の数が禁止されています。 組み込みのグローバル変数は、深刻な問題を引き起こす可能性があります書き換え。

文法

alias 方法名 方法名
alias 全局变量 全局变量

alias foo bar
alias $MATCH $&

ここでは、fooは$&$ MATCHのエイリアスを定義するには、バーするための別名を定義しています。

ルビーはundefステートメント

このステートメントは、メソッドの定義をキャンセルするために使用されます。 undefがメソッド本体内に表示することはできません。

undef別名を使用することによりクラスインターフェイスは、独立して、親クラスから変更されたが、独自の内部メソッドが呼び出したとき、それはプログラムを弱体化させる可能性があることに注意してくださいすることができます。

文法

undef 方法名

以下の例は、名前のバー法の定義をキャンセルされています。

undef bar