LoginSignup
0
0

More than 3 years have passed since last update.

【プログラミング初心者の方へ】メソッドってなに?

Posted at

はじめに

最近プログラミングを始めた方、特にスクールに行かず「独学でやったるぜ!」と意気込むそこのあなた!

はい。自分もそうでした。そして理由もなく考えもなくRubyに手を出してるところも一緒です。仲間!

でも、、、

わからないことがわからない

ですよね。
コード書け!って言われてもなに書けばいいのかわかんない!まあそれが普通だと思います。

たまに歴半年くらいで開眼してメタプロまで書いちゃうような突然変異種(天才)もいますが気にしない方がよいです。そういう人は大概優しくて教えるのも上手なので色々教えてもらいましょう。

本題

Rubyに限らずですが、プログラミング初心者がよくつまづいたり、理解に苦しむところは

メソッド,引数

じゃないでしょうか。自分はそうでした。

自分で考えたメソッドを書く

これの意味が理解できなかったです。ああ懐かしいもどかしい。

自分の中でしっくりくる捉え方が見つかるまで時間がかかりました。(自分は割とすぐに実務に入ったのでその中で感覚を掴みました。長く独学をするのはあまりおすすめしません。)

メソッドにもインスタンスメソッド,クラスメソッドなるものがいてどう使うのかどこで使うのか全然わからない!って感じでした。

なので自分なりの解釈をここでお伝えしたいと思います!

メソッドの解釈

ターミナルを開いてirbを起動しましょう。以下のように入力してみてください。

irb
hoge = 'hogeはホゲホゲ'

続けて以下のコードを実行します。

irb
hoge.length

9という結果がでたあなたは天才です。素晴らしい。

はい。この時のlengthがメソッドです。

え?そんなの知ってるって?
さすがです。あなたはもう初心者ではないでしょう。

次はこちら

irb
class User
  def name
    'hoge'
  end
end

次に以下のコードを実行します。

irb
user = User.new
user.name

"hoge"という結果がでたあなたは天才です。素晴らしい。
はい。この時のnameがメソッドです。

わかった!と思ったあなたはもう次のステップに進んでいます。この記事を読み続ける必要はないでしょう。

ん?と思ったらもうちょっと読んでみてください。

今実行したのは、
Stringクラスlengthメソッド
Userクラスnameメソッド
の2つです。

lengthメソッドについては下記のURLを参考にどうぞ。
String#length (Ruby 2.7.0 リファレンスマニュアル)

StringクラスlengthメソッドはあらかじめRubyに組み込まれているものです。オブジェクトの文字長を返します。

Userクラスnameメソッドは今回自分で生み出したものということになります。こちらは中身がhogeでもfugaでもいいのです。

これらはどちらもインスタンスメソッドになります。それぞれのクラスのインスタンスに対してくっつけて使います。

HogeクラスのインスタンスはHoge.newで作れますね。

UserとかHogeとかに対して直接くっつけて使うメソッドはクラスメソッドと言います。違いはこれだけです。

自分で考えたメソッドを書く

初めはこれがすごく難しいものであると勘違いしていました。
でも概念がわかればすごく便利に使えます。今回書いたのはnameで中身はhogeだけでしたが、いろんな処理をまとめて書いておくことでそのメソッドを一発叩けば実行することができるようになります。

例えば(今回は引数も使っちゃいましょう)

irb
class Number
  def check(a, b)
    if a == 2
      a * b
    elsif a == b
      a / b
    else
      a + b
    end
  end
end

これでNumberクラスcheckメソッドを実行しましょう。

irb
num = Number.new
num.check(1, 2)
num.check(2, 2)
num.check(3, 3)

引数によって計算式が変わるメソッドですね。簡単なものでもirbを使って色々書いて実行してみるのがいいと思います。引数については今のでしっくりきたでしょうか。

クラスメソッドはこの最たるもので、バッチ処理をする時には大活躍します。まさに一撃!という感じです。

バッチ処理ってなんやねん!と思った方はこちら

要は溜めてまとまった処理をシステムの裏側で実行する仕組みです。

最後に

ここまで読んで、わかんない!という方。本当にすみません。それはこの記事の分かりにくさです。もっと分かりやすく書けるように勉強します。

ちなみに今この瞬間にメソッドについてよくわかってなくても、irbやコンソールでさっき出てきたlengthが使えれば問題ないです。そのうち分かります。あなたが分かった時や詳しくなった時には、その時に初心者の方に優しく教えてあげましょう。

最後まで読んでいただきありがとうございました。

0
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
0
0