【问题标题】:ETS matching issueETS 匹配问题
【发布时间】:2010-11-02 03:13:09
【问题描述】:

我正在学习 ETS。我做到了:

Sometab = ets:new(sometable, [bag]).
ets:insert(Sometab, {109, ash, 8}).

然后我输入:

ets:match(Sometab, {109, ash, '$1'}).

但是,我没有得到8,而是得到:["\b"] 作为输出!

【问题讨论】:

    标签: erlang pattern-matching


    【解决方案1】:

    你得到了正确的答案。但是,erlang shell 将[8] 打印为"\b",因为backspace 的ASCII 码是8。

    Erlang 没有字符串类型。 erlang 中的字符串仅表示为整数列表,如果列表仅包含 ascii 范围内的整数,则 Erlang shell 将此列表打印为字符串。

    这确实有时会令人困惑。

    【讨论】:

    • 哦!所以当我把它作为输出传递给浏览器时,它会显示得很好吗?
    • 嗯,是的......有点。 ["\b"] 与 [[8]] 相同。所以如果你想得到整数,你可以做类似 [[X]] = ["\b"] 的事情。现在 X 将包含整数 8。
    猜你喜欢
    • 2016-10-27
    • 2012-09-09
    • 2011-11-27
    • 2017-10-17
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    相关资源
    最近更新 更多