連想配列の追加(再) by FineArchs · Pull Request #738 · aiscript-dev/aiscript
手違いにより #693 が閉じられてしまったので再作成します。
概要
let sampledic = dic { [1]: null ['hoge']: 'fuga' [[1, 2, 4]]: [4, 5, 6] [Core:add]: @(){ print(1) } } let key = [1, 2, 4] <: sampledic[key] // [4, 5, 6]
名前空間記法との兼ね合いから、キーは全て[ ]で囲うようになっています。
キーの等価性はdeep-equalになっています(関数のみ参照比較)。
実装
トライ木の構造を採用しています。
その都合上、キーを直列化する仕組みを導入しています。
Why
備考
- 循環参照対策はまだしていません
- 同時書き込み対策はまだしていません
- console.jsが書き換わっているのはついでです。変数が保持されるようになっています
- 別PRで組み込みプロパティの追加もしたいです