映射表是键/值对结构的数据类型,用于表示一组带有标签的,需要放在一起的值。例如,如果想记录用户注册信息,可以用映射表存储字段和值。
%{}是创建映射表的语法。email:是键,它是一个原子。“johndoe@mail.com”是:email键对应的值。使用=>的等价语法表示如下:
虽然有点繁琐,但这种语法可以在键中存储任何值。比如:
我们还可以创建更复杂的嵌套结构:
可以使用模式匹配来检查映射表的值和键。在IEx中输入以下内容:
在这个例子中,我们访问键:strength并将其值绑定到变量strength_value。模式匹配表达式会自动检索映射表的子集,所以我们不需要给出所有的键就能匹配成功。我们只需要给出想访问的键。如果映射表中没有这个键,则会出现MatchError。请试一试:
如果使用空映射表,它将匹配所有映射表。(www.xing528.com)
我们还可以用模式匹配表达式同时提取和检查值。这里继续使用上一个示例中的变量abilities,在IEx中尝试这个新模式:
这个表达式要求abilities变量必须有一个值为10的:intelligence键,同时,它还检查:dexterity键是否存在,如果存在,则将其值提取出来,绑定到变量dexterity_value。
还可以在模式匹配表达式左侧使用=运算符做绑定和检查。试一下:
要理解这个表达式,请先单独看strength_value=16。表达式将值16绑定到变量strength_value。现在strength_value为16,它将尝试匹配映射表abilities,而abilities包含键值strength: 16。匹配成功!我们也可以把这个表达式分解成两步:
这里,我们借助锁定运算符用strength_value变量的值来匹配abilities。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。