LoginSignup
1
1

More than 5 years have passed since last update.

【Ruby】コードリーディングして分からなかった記載や違いについて

Last updated at Posted at 2017-10-24

背景

Ruby on Railsのチュートリアルを勉強後、一つサイトを作ってみましたが、他の人のソースを読むと「まだまだ理解できていないところが多いな・・・」と感じました。
これはいかんと思い、まずはRubyの知識を補うため「kaminariを読んでみよう!!!」って事で読み始めてみました。
最初のコードリーディングにkaminariを選んだ理由は、有名なgemであり、中できっと難しいことしているだろうという考えです。

その中で分からなかった記述方法や違いについてしっかりと理解できていなかった点を下記に挙げてます。
基本的には分かりやすかったサイトへ誘導するようにしてます。
コードリーディングはまだ道半ばなので、新たにあれば追加していきます。

extend, include, prependについて

extend

クラスがモジュールをincludeすると、モジュールのインスタンスメソッドを特異メソッドとして追加

include

クラスがモジュールをincludeすると、モジュールのインスタンスメソッドを追加

prepend

includeに近いですが、継承チェーンはプリペンドしたクラスの手前に入ります。

参考サイト

【Ruby】includeとprependとextendの違いと用途

yield(+ブロック、proc)について

railsのViewでyieldは使ったけど、よくわかってない・・・。
調べると、ブロックやprocがセットで出てくるので合わせて勉強。

yield

yieldは"供する", "譲る"などの意味があり、メソッド呼び出し時にブロックを与えると、メソッド内でyieldでブロックの処理を実行できます。

ブロック

メソッド呼び出し時に{}やdo...endで囲まれているもの。

proc

yieldで実行する以外に、引数に&procという引数を追加すれば、ブロックをproc.callで実行できるようになります。

参考サイト

Ruby の yield って結局なんなの?

<=>について

最初は何かわからなかったけど、<と=と>であると理解すれば納得。

<=>

JavaのCompareと同じ。

参考サイト

Ruby の <=> 演算子が返す値を覚える方法

1
1
2

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