You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何从Map中取出的值会带有"Elixir."前缀?

解决Elixir Map取值带"Elixir."前缀的问题

这问题的核心是你用错了Elixir原子键的语法:

  • 你定义Map时写的是%{name => "Sean"},Elixir会把这种不带冒号的标识符默认解析成模块作用域下的原子,也就是:"Elixir.name",所以取值时才会出现带前缀的结果。

正确的Map定义写法有两种:

  1. 给原子键显式加冒号:
map = %{:name => "Sean"}
  1. 用Elixir简洁的键值语法(更推荐):
map = %{name: "Sean"}

用上面任意一种写法定义后,不管你用map.name还是Map.get(map, :name),都会直接返回"Sean",不会带多余前缀。

要是你好奇错误写法为啥能运行——Elixir允许这种跨模块的原子命名,但这完全不符合日常开发规范,别这么用就行。

内容的提问来源于stack exchange,提问作者Seanf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 11:07:36