Rubyと仲良くなりたい٩( 'ω' )و

Rubyと仲良くなりたい日々のこと

Kernel偉大という話

Kernelとは

Kernelとは、核心・要点・中心部という意味合いを持つ言葉です。

RubyのKernelは、module Kernel (Ruby 2.5.0)によると、

全てのクラスから参照できるメソッドを定義しているモジュール。

です。

どういう意味?

まず、大事なこと。Kernelモジュールは、モジュールです(そのまんまですみません)。

『全てのクラスから参照できるメソッド』と言うのは、ObjectがKernelモジュールをincludeしていると言うことなのです。

下記の例で言うと、

a = "Hello!!"
a.class
=> String
a.class.sperclass
=> Object

aのクラスはStringです。
StringのスーパークラスがObjectです。
このObjectがKernelモジュールをincludeしているので、aがKernelモジュールを参照できます。

そして、Objectはすべてのクラスのスーパークラスです。
ObjectがKernelモジュールをincludeしているということは、Kernelモジューを『全てのクラスから参照できる』ということになるのです。

どんなのがあるの?

よく見かけるので、Array, Hash, Intege, binding, exit, raise, load, open, p, print, require, select...
書きかけましたが、キリがないので、詳細はこちらのドキュメントからどうぞ。

docs.ruby-lang.org

最後に

よくわからない感じになっていたのですが、先輩に手伝っていただき図に書いたりしながらやっとイメージがついたので要点をまとめました。 Kernel偉大…!