0
Map
で奇妙な問題が発生しました。Map.getが文字列キーで値を取得できません
- 「すぐに」:私は2つの奇妙な行動に気づい
iex(1)> import Document Document iex(2)> Document.expiration_presets %{"1-day": [days: 1], "1-hour": [hours: 1], "1-minute": [minutes: 1], "1-month": [months: 1], "1-week": [weeks: 1], "1-year": [years: 1], immediately: [seconds: 1], never: [years: 9999]} iex(3)> Document.expiration_presets["1-hour"] nil iex(4)> Map.get(Document.expiration_presets, "1-hour") nil
:我々は、マップから情報を取得しようとした場合
defmodule Document do @expiration_presets_to_timeshift %{ "immediately": [seconds: 1], "1-minute": [minutes: 1], "1-hour": [hours: 1], "1-day": [days: 1], "1-week": [weeks: 1], "1-month": [months: 1], "1-year": [years: 1], "never": [years: 9999], } def expiration_presets, do: @expiration_presets_to_timeshift end
:ここでは、現象を再現するために、小さな例です「決して」キーは原子になっています。私は決してこれを求めなかった。どうして ?
- 私は(
Map.get/2
とMap.[key]
両方がnil
を返す)、キーの文字列を使用して値を取得するように見えることはできません。それはなぜですか、そして、私はどのようにマップから値を取り出すことができますか?
感謝が不足しています!私は 'key => value'と' atom:value'の区別に気づいていませんでした! – achedeuzot