Erlang 17推荐使用地图替换记录,但如何使mnesia支持地图? [英] Erlang 17 recommend to use map replace record,but how to make mnesia support map?

查看:141
本文介绍了Erlang 17推荐使用地图替换记录,但如何使mnesia支持地图?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在乔的Erlang的大变化中,
http://joearms.github.io/2014/02/01/big-changes-to-erlang.html



我们想要地图作为记录的替代品,并且与记录一样高效,而且不明确如何做到这一点。



如何使变换纪录映射到mnesia?

解决方案

Mnesia在内部使用ETS(和dets),这些都是基于元组作为基础数据结构。虽然它们可以在顶层包含地图,但它必须是元组。由于记录是元组记录也可以在顶层。重新设计ets / dets / mnesia以使用地图将是一项重大努力。



由于地图访问是动态完成的,而静态记录可能无法获取快速的地图记录。


In joe's "Big changes to Erlang" http://joearms.github.io/2014/02/01/big-changes-to-erlang.html

"we wanted maps to be a replacement for records and to be as efficient as records, and its not blindingly obvious how to do so."

How to make transform records to maps in mnesia?

解决方案

Mnesia uses ETS (and dets) internally and these are based on tuples as the base data structure. While they can contain maps at the top-level it must be tuples. As records are tuples records can also be at the top-level. Redesigning ets/dets/mnesia to use maps would be a major effort.

As maps access is done dynamically while records statically it is probably not possible to get maps as fast as records.

这篇关于Erlang 17推荐使用地图替换记录,但如何使mnesia支持地图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆