Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

どういう需要があるのかわからないけどミュータブルなNumber作ってみた

JavaScriptのNumberはイミュータブルですが、for文のiに対してconstできなかったり微妙に使い勝手が悪いのでミュータブルなクラスを作ってみました。もっとも、演算子オーバーロードができないので使い勝手はこの上なく悪いですが。

GitHubリポジトリ

mutable-numberここにあります。

使い方

const arr = [1, 2, 3, 4, 5];
for (const i = new MutableNumber(0); i.value < arr.length; i.inc()) {
    console.log(arr[i.value]);
}

こんなふうになります。演算子オーバーロードさえできればこんな醜い構文にならなくて済むのに・・・

もしも演算子オーバーロードできたら

const arr = [1, 2, 3, 4, 5];
for (const i = new MutableNumber(0); i < arr.length; i++) {
    console.log(arr[i]);
}

こうなったらいいですよね。もっとも、Numberはイミュータブルの方が嬉しいケースが多いですし、本当にどういう需要があるのかわかりませんがね。