Yuki's Tech Blog

仕事で得た知見や勉強した技術を書きます。

【Ruby】nilとは何かについてざっくりまとめてみた

目次

概要

nilとは何かの問いにパッと答えられなかったので、まとめようと思います。

nilとは何か

nilとは、「何もない」ことを表すオブジェクトです。nil自体もオブジェクトであり、NilClass クラスの唯一のインスタンスです。「期待したものが何もなかった」ことを表現したい場合に使用します。

TSのnullとの違い

TSのnullは、「オブジェクトの値が無い」ことを表すプリミティブ値です。プリミティブ値とは、厳密にいうとプリミティブ型の値のことで、オブジェクトではない、メソッドを持たないデータのことです。また、プリミティブ型の値は、イミュータブル(immutable)な特性を持ちます。TSのnullもRubynilも、どちらも期待した値が存在しない場合に返す用途であることが分かります。

参考記事

class NilClass (Ruby 3.2 リファレンスマニュアル)

データ型とリテラル · JavaScript Primer #jsprimer

NaN - JavaScript | MDN

null - JavaScript | MDN

Ruby の nil は無か? - Qiita

Primitive (プリミティブ) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN