Erlang中的散列符号有什么作用?

hgncfbus  于 2022-12-08  发布在  Erlang
关注(0)|答案(6)|浏览(135)

Erlang中的散列符号有什么作用?

record_to_string(#roster{us = {User, _Server},
         jid = JID,
         name = Name,
         subscription = Subscription,
         ask = Ask,
         askmessage = AskMessage}) ->
Username = ejabberd_odbc:escape(User).
....
.
cuxqih21

cuxqih211#

它们与records一起使用。

yzuktlbb

yzuktlbb2#

为了完整起见(以防有人在谷歌上搜索“Erlang Hash”):
散列符号还可用于定义具有任意基数的整数,如

16#deadbeef = 3735928559.
lyr7nygr

lyr7nygr3#

它们与Erlang中的记录相关。实际上,Erlang中的每个操作(如创建、访问和更新记录)都是使用# http://20bits.com/articles/erlang-an-introduction-to-records/完成的

nbnkbykc

nbnkbykc4#

如果记录定义如下:

-record(record_name, {first_field, second_field}).

您可以使用散列以多种方式访问记录,其中包括:

% create a new record and put it in a variable
Record = #record_name{first_field = 1, second_field = 2},

% get only the second_field of Record
Field = Record#record_name.second_field,

% create a new record from Record, but with a different first_field
Record2 = Record#record_name{first_field = 5}.
o4hqfura

o4hqfura5#

正如前面的答案所指出的,它们是记录和数字表示的语法的一部分,从Erlang R17开始,它们也用于Map。Map是R17中引入的一种新的键-值数据类型,它们表示为:#{ Key =〉值,...}
我认为Map上最好的信息来源是this link。然而,在发布候选版本1中,似乎并没有实现那里描述的所有功能。

pobjuy32

pobjuy326#

Hash符号用于处理Erlang中的记录,正如其他答案所指出的那样。下面的文章更详细地解释了语法。http://www.techtraits.com/Programming/2011/06/11/records-in-erlang/

相关问题