aiscript
aiscript copied to clipboard
nullとerrorの使い分けを考える
https://github.com/syuilo/aiscript/issues/396#issuecomment-1756845571
大雑把に考えると値の存在を期待しているかどうかで分けられると思います。
これについてもう少し詳しく考えたいです。
https://github.com/syuilo/aiscript/issues/282#issuecomment-1620632461 でも言及されているように正常値としてのnullと区別できる必要があるかが基準の一つになると思います。
失敗値としては基本errorの方が意味が明確。
あえてnullが返るとするとa.find(v)というよりもa.findOrDefault(v, null)のようなニュアンスに感じます。
それと失敗値以外にもvoidの意味でのnullの使われ方もあるのでこれはどうするか。
a.find(v)に関しては、「無かった」という意味でnullを返す解釈と「探索に失敗した」という意味でerrorを返す解釈の両方が成り立つと思うんですよね…
voidの意味のnullはとりあえずそのままでいいと思います。