Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

Rubyの関数とメソッド:独自の関数を定義する方法

Rubyメソッドとは何ですか?

メソッドは、特定の目的のためにグループ化された1行または複数行のRubyコードです。

このグループ化されたコードには名前が付けられているため、コードを再度記述したり、コピーして貼り付けたりすることなく、いつでも使用できます。

メソッドの目的は次のとおりです

  • 情報を取得します。
  • オブジェクトを変更または作成します。
  • フィルターとフォーマットのデータ。

例1

サイズ Arrayのメソッド オブジェクトは要素の数を示します(情報を取得します)。

例2

pop メソッドは、配列から最後の要素を削除します(オブジェクトを変更します)。

オブジェクト、クラス、メソッドの関係を理解すると、すべてが理にかなっています。

Rubyの関数とメソッド:独自の関数を定義する方法

学び続けましょう!

メソッドの定義方法

Rubyプログラミング言語には、使用できる強力な組み込みメソッドが多数ありますが、独自のメソッドを作成することもできます。 。

どうやって?

defを使用して独自のインスタンスメソッドを定義できます キーワード。

構文は次のとおりです

def gimme_bacon
  puts "Bacon plz."
end

ここで何が起こっているのですか?

  1. def はRubyの構文の一部であり、 defしたいことを示しています 方法
  2. gimme_bacon メソッドの名前です
  3. puts"Baconplz。" メソッドの本体です
  4. 終了 メソッド定義の終わりを示します

メソッドを定義すると、Rubyにメソッドを作成することだけが通知されます。

使用する場合は、メソッドを呼び出す必要があります。

Rubyでメソッドを呼び出す方法

Rubyでは、メソッドを使用するとき、それを呼び出していると言います。

「メソッド呼び出し」がよく聞こえます。または、オブジェクト指向の純粋主義者と一緒に作業している場合は、「メッセージを送信している」と聞こえることがあります。

いずれにせよ…

メソッドの使用例を見てみましょう。

どうぞ

gimme_bacon

これは印刷されます

"Bacon plz."

オブジェクトのメソッドを呼び出すことができます。

n = [1,2,3]

n.size
# 3

このn.size メソッドsizeを呼び出しています オブジェクトのn 、これはたまたま Array

結果は?

アレイのサイズを取得します。

どのような方法が利用できますか?

これは、メソッドを呼び出しているオブジェクトのクラスによって異なります。

配列にはハッシュとは異なるメソッドがあります 。

Rubyのドキュメントをチェックして、特定のクラスのメソッドのリストを見つけることができます。

メソッドからの戻り値

Rubyの重要な概念の1つは、すべてのメソッドが値を返すことです。

説明させてください!

メソッドを呼び出した結果、何かが返されます。

この「何か」は、メソッド定義の最後の式から得られます。

これが私の意味です

def number_one
  1
end

number_one
# 1

別の例

def add(x,y)
  x + y
end

add(5, 6)
# 11

これを「暗黙のリターン」と呼びます。これは、「最後のものを自動的に返す」という意味の単なる名前です。

さらに

Rubyにreturnを指示できます キーワードのあるもの。

def two
  return 2
end

# 2

return を使用すると、メソッドの実行が停止することに注意してください。 。

これは、コードを早期に返すため、またはループを終了するために使用します。

メソッド名に疑問符が含まれているのはなぜですか?

奇妙なRubyメソッドが見つかるかもしれません。

次のような名前で

  • 空ですか?
  • sort!
  • title =

これらはすべて有効なメソッド名です。

疑問符、感嘆符、または等号はどういう意味ですか?

これらはRubyコミュニティの慣習です。

説明

  • 疑問符の方法 は、述語メソッドとも呼ばれ、 trueのいずれかを返すことになっています。 またはfalse
  • 感嘆符の方法 非感嘆符バージョンとは異なる何かをするだろうと言います。通常、これは、要素の追加/削除など、何らかの方法でオブジェクト自体を変更することに関連しています。 「バングメソッド」とも呼ばれます。
  • 等号法は代入を意味します 。インスタンス変数に値を割り当てるために使用されます

これらの規則はいずれも、言語によって強制されていません。

しかし…

それらに従うと、Rubyのようなコードをさらに書くことができるようになります!

概要

Rubyメソッドの威力、それらを定義する方法、それらを使用する方法、および適切な規則に従う方法について学習しました。

今度はこれを実践する番です🙂

読んでくれてありがとう!


  1. Rubyプログラムをデバッグおよび修正する方法

    あなたのプログラムは、最初にあなたが望むことを正確に実行する頻度はどれくらいですか? 多くの場合、プログラムは期待どおりに機能しないため、ルビーのデバッグの技術を使用する必要があります。 理由を見つけるのに役立ちます。 次のエラーメッセージに精通している可能性があります。 undefined method some_method for nil:NilClass これは、nil値がコードへの道を見つけることができたことを意味します。 この記事で説明する手法を使用して、この問題や同様の問題に対処する方法を学びます。 エラーとスタックトレースを理解する Rubyインタープリターからエラー

  2. 独自のシーザー暗号エンコーダーの書き方

    シーザー暗号について聞いたことがありますか ? ジュリアスシーザーはこのテクニックを使用して、敵からの秘密のメッセージを隠しました! シーザー暗号は、最も原始的な暗号化技術の1つです。 このシステムの背後にある主なアイデアは、文字を回転させることです。 x個のアルファベット上の位置 。 たとえば、x = 1の場合 、「A」は「B」になり、「C」は「D」になります。 では、これをコードでどのように実装するのでしょうか? よろしくお願いします。見た目ほど難しくはないことがわかりました。文字は数字(ASCIIコード)で表すことができるという事実を利用します。これにより、2つの数字を