首页 > 解决方案 > 从 Elixir 脚本中的 Map 中检索值

问题描述

如果我在 Elixir 中编写一个简单的 Map,例如:

person = %{ :name => "Bob", :age => 45}

我将它保存为脚本,例如

script.exs

编译脚本后如何检索 Bob 的年龄

elixir script.exs?

或者,甚至更好:

iex script.exs

如果我再写person[:age]

它给了我一个错误:

** (CompileError) iex:1: undefined function person/0

在 Elixir 中不能使用这样的 Maps 吗?

标签: dictionaryelixirelixir-iex

解决方案


这有点 hacky,但您可以使用iex --dot-iex script.exs. 请参阅.iex.exs 文件

$ iex --dot-iex script.exs
Erlang/OTP 21 [erts-10.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

Interactive Elixir (1.9.1) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> person
%{age: 45, name: "Bob"}

用 编译脚本后如何检索 Bob 的年龄elixir script.exs

不知道你在这里的意思。运行脚本后,脚本已完成,因此无法检索任何值(除非脚本返回或设置环境)。


推荐阅读