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...
書きかけましたが、キリがないので、詳細はこちらのドキュメントからどうぞ。
最後に
よくわからない感じになっていたのですが、先輩に手伝っていただき図に書いたりしながらやっとイメージがついたので要点をまとめました。 Kernel偉大…!