Elixir的Map模块提供了一些不同的函数来操作map数据结构。其中一个函数就是Map.put/3 。这个函数允许你将一个健值对放入一个map中。
|
|
如果这个键对于此map来说是新的话,这个键值对就简单地加入map。如果这个键对于此map来说是已存在的,那么对应的老的值则被新的值替换。
同样的效果可以用Map.merge/2来实现。
|
|
Map.merge/2的优势是它的灵活性。它能够更容易地在不同情况下使用。它甚至允许一次增加并且替换多个健值对。因为两个入参都是map,它让我们感觉到更容易阅读。
也有一个语法糖的方法,就是用map字面符号和一个管道来替换已经存在的键值对。
|
|
这个是最简洁的方法,但是,它仅仅是用来替换一个健值对。如果这个键不存在map中,则一个错误将发生。
除此之外当然还有其他函数来设置值到map中,包括 Kernel.put_in/3 和 Map.get_and_update/3 。然而上述几个方法是我自己最经常接触到的。
原文链接: http://joshbranchaud.com/2016/09/25/putting-things-into-maps-in-elixir/