<div dir="ltr">Thank you Roberto and Mark for the clarification.<div>I am loading the data from a file using the <span style="color:rgb(8,8,8);font-family:"JetBrains Mono",monospace">file:consult(</span><span style="font-family:"JetBrains Mono",monospace;color:rgb(102,14,122)">MapData</span><span style="color:rgb(8,8,8);font-family:"JetBrains Mono",monospace">)</span></div><div>Currently the file looks like this</div><div>{"key1", {"data1"}}.</div><div>{"key2", {"data2"}}.<br></div><div><br></div><div>If I want to have all binary for consistency does this means that I need to write into the file as</div><div><div>{<<"key1">>, {<<"data1">>}}.</div><div>{<<"key2">>, {<<"data2">>}}.</div></div><div><br></div><div>Kind Regards</div><div>Nikolas</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Στις Τετ, 13 Οκτ 2021 στις 11:24 μ.μ., ο/η Roberto Ostinelli <<a href="mailto:ostinelli@gmail.com" target="_blank">ostinelli@gmail.com</a>> έγραψε:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><<“key”>> is a binary, “key” is a list, so they are not the same. maps:get/2 raises because the key is not found. <br>
<br>
> string:equal(Key1, Key11).<br>
<br>
The string representation for both is the same, hence this return true.<br>
<br>
Hope this helps,<br>
r.<br>
<br>
> On 13 Oct 2021, at 23:05, Java House <<a href="mailto:java4dev@gmail.com" target="_blank">java4dev@gmail.com</a>> wrote:<br>
> <br>
> <br>
> Hello<br>
> I am having a problem with maps and strings as keys.<br>
> My understanding that the the two string formats "string" and <<"string">> are identical but as you can see from the transcript bellow maps does not think so.<br>
> I searched but I couldn't find any function to convert form "string" to <<"string">> or the other way around.<br>
> How can I make maps to accept both format of strings?<br>
> <br>
> Erlang/OTP 24 [erts-12.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit]<br>
> <br>
> Eshell V12.0  (abort with ^G)<br>
> 1> Key1 = "key1".<br>
> "key1"<br>
> 2> <br>
> 2> Key11 = <<"key1">>.<br>
> <<"key1">><br>
> 3> <br>
> 3> string:equal(Key1, Key11).<br>
> true<br>
> 4> <br>
> 4> Map = maps:new().<br>
> #{}<br>
> 5> <br>
> 5> Map1 = maps:put("key1", {something}, Map).<br>
> #{"key1" => {something}}<br>
> 6> <br>
> 6> maps:get(Key1, Map1).<br>
> {something}<br>
> 7> <br>
> 7> maps:get(Key11, Map1).<br>
> ** exception error: bad key: <<"key1">><br>
>      in function  maps:get/2<br>
>         called as maps:get(<<"key1">>,#{"key1" => {something}})<br>
>         *** argument 2: not a map<br>
> 8> <br>
> 8> maps:get("key1", Map1).<br>
> {something}<br>
> 9> <br>
> 9> maps:get(<<"key1">>, Map1).<br>
> ** exception error: bad key: <<"key1">><br>
>      in function  maps:get/2<br>
>         called as maps:get(<<"key1">>,#{"key1" => {something}})<br>
>         *** argument 2: not a map<br>
> 10> <br>
> <br>
</blockquote></div>