Elixir 为什么是长生不老药';s nil实现访问行为?

Elixir 为什么是长生不老药';s nil实现访问行为?,elixir,Elixir,正如长生不老药所说: …访问透明地忽略零值: 对我来说,这似乎很容易出错。我宁愿看到nil[key]失败,也不愿返回nil 我很确定语言开发人员选择走这条路有很好的理由。这是什么原因 nil不实现Access行为(nil是atom FWIW。) 发生的情况是:Access.fetch(nil,无论什么)返回:error和get作为第三个参数传递给Access.get/3 “为什么”这个问题最好向José提出,我唯一能想到的是:如果是深层嵌套结构,这种行为会简化代码 此外,这是第一级地图访问的默

正如长生不老药所说:

…访问透明地忽略零值:

对我来说,这似乎很容易出错。我宁愿看到
nil[key]
失败,也不愿返回
nil


我很确定语言开发人员选择走这条路有很好的理由。这是什么原因

nil
不实现
Access
行为(
nil
是atom FWIW。)

发生的情况是:
Access.fetch(nil,无论什么)
返回
:error
get
作为第三个参数传递给
Access.get/3

“为什么”这个问题最好向José提出,我唯一能想到的是:如果是深层嵌套结构,这种行为会简化代码

此外,这是第一级地图访问的默认行为:

iex> %{a: 42}[:b]
nil
iex> %{a: 42}[:b]
nil