aiscript-dev / aiscript

🔋 A lightweight scripting language runing on JavaScript
https://aiscript-dev.github.io/aiscript/
MIT License
186 stars 33 forks source link

nullとerrorの使い分けを考える #404

Open FineArchs opened 1 year ago

FineArchs commented 1 year ago

https://github.com/syuilo/aiscript/issues/396#issuecomment-1756845571

大雑把に考えると値の存在を期待しているかどうかで分けられると思います。

これについてもう少し詳しく考えたいです。

salano-ym commented 1 year ago

https://github.com/syuilo/aiscript/issues/282#issuecomment-1620632461 でも言及されているように正常値としてのnullと区別できる必要があるかが基準の一つになると思います。 失敗値としては基本errorの方が意味が明確。 あえてnullが返るとするとa.find(v)というよりもa.findOrDefault(v, null)のようなニュアンスに感じます。

それと失敗値以外にもvoidの意味でのnullの使われ方もあるのでこれはどうするか。

FineArchs commented 1 year ago

a.find(v)に関しては、「無かった」という意味でnullを返す解釈と「探索に失敗した」という意味でerrorを返す解釈の両方が成り立つと思うんですよね…

voidの意味のnullはとりあえずそのままでいいと思います。