silverdr

silverdr

The documentation says:

Keys in maps can be accessed through some of the functions in this module (such as Map.get/3 or Map.fetch/2) or through the map[] syntax provided by the Access module

Are there any pros/cons for using one over another? I mean especially in situations where the result would be the same. Also any performance / resource usage implications of using one over another?

Showing Posts 1 to 6

sergio

sergio

fetch/2will give you an error and say HEY THIS DOES NOT EXIST. Do something about it!

Map.fetch(medical_kit, :insulin_shot)
:error # CALL 911!

Map.get/2 is more chill and will be like hey uh I couldn’t find anything here’s nil - or give you a default. Like asking your wife for your Tom Ford sunglasses and honey if you can’t find it just grab me my Raybans no big deal.

Map.get(dresser, :tom_ford_sunglasses, :raybans)

10
Post #1
BartOtten

BartOtten

Additionally, the Access syntax is also supported by Keyword List; so it allows for switching between Map en Keyword List without replacing calls.

silverdr

silverdr OP

I updated the question a bit to make it more explicit about what I ask about. I know the different usage possibilities. It is more about when I have a map and want to access existing/non-existing keys (without supplying own default to override the normally returned nil). IOW situations where Map.get and Access behave seemingly the same.

cmo

cmo

map_or_kw[:something] || ”bananas" is Map.get/Keyword.get and is easier on the eye, imo.

Access lets you do nested gets, like map[:one][:two][:three]

gregvaughn

gregvaughn

Related fun fact:

iex(18)> nil[:access_works_for_nil]
nil
marcandre

marcandre

Except map_or_kw[:something] || ”bananas" will behave differently on %{something: false} for example.

— All posts loaded —

Where Next? Top

Trending in Questions Top

water
I’m aware of 2 such projects, are there others? git: GitHub - team-alembic/realworld: A fullstack Phoenix LiveView application with back...
New
katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
peck
Hi everyone. My team and I have been working on a fairly modest app based around video streaming and chat, but we’ve landed a customer t...
New
bradley
I really like the adapter patterns that ecto, nebulex, waffle, etc. use and would love find something similar for a key management servic...
New
unaware8150
Hello folks! So at work, we are seeing some situations where we have to define some “fixed” strings that are used across the codebase in...
New
Alvinkariuki
How Can I Optimise Compile Time Dependencies I have been building an elixir application for about 2 years now. Many modules and files ha...
New

Other Trending Topics Top

budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
mudasobwa
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
budgie
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with. But I don’t use it anymore. Serverless was the promis...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews