【问题标题】:Erlang - extract tuple from list of tuplesErlang - 从元组列表中提取元组
【发布时间】:2018-04-07 14:11:10
【问题描述】:

大家好,首先我是 Erlang 的初学者, 我正在尝试从元组列表中提取一个元组并将其分配给一个变量。 考虑这个数据集。

[{0,25075,-2},{0,0,-2},{0,376100,-4}] 

例如,我想将 {0,25075,-2} 分配给 Var1 等。

我在 shell 中尝试了以下方法进行测试;

Tuples = [{0,25075,-2},{0,0,-2},{0,376100,-4}].
{Var1, Var2, Var3} = Tuples.

但我收到此错误;

ฐ** exception error: no match of right hand side value 
                    [{0,25075,-2},{0,0,-2},{0,376100,-4}]

任何帮助将不胜感激,谢谢。

【问题讨论】:

    标签: erlang


    【解决方案1】:

    在 shell 中,如果您已经为变量赋值,那么您必须在重用之前清除该变量。使用命令f(). 清除所有当前变量,或使用f(Var1). 仅清除Var1

    其次,你的语法是错误的。应该是:

    1> Tuples = [{0,25075,-2},{0,0,-2},{0,376100,-4}].
    [{0,25075,-2},{0,0,-2},{0,376100,-4}]
    2> [Var1, Var2, Var3] = Tuples.
    [{0,25075,-2},{0,0,-2},{0,376100,-4}]
    3> Var1.
    {0,25075,-2}
    4> Var2.
    {0,0,-2}
    5> Var3.
    {0,376100,-4}
    6> Var1 = "something else".
    ** exception error: no match of right hand side value "something else"
    7> f(Var1).
    ok
    8> Var1 = "something else".
    "something else"
    9> Var1.
    "something else"
    

    您不会经常对列表进行这样的分配,但通常您会迭代和/或使用列表操作。

    【讨论】:

    • 非常感谢! Erlang 是一种奇怪的语言,我会花一些时间来适应!
    • @SnellyCat 它实际上比你现在想象的要容易得多,因为你被错误地训练了,就像一个宇宙笑话。 ;-) 老实说,Erlang 作为一种语言是您可能遇到的最小、最不复杂的语言之一。一旦 matchingrecursionlist 操作 在你的脑海中变得很自然,你会突然想知道 wtf 正在处理其他所有神秘的疯狂和语法语言(一段时间后您使用其他语言时会很烦人......)。学习愉快!
    猜你喜欢
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-30
    • 2020-01-09
    • 1970-01-01
    • 2016-07-12
    • 2012-02-29
    相关资源
    最近更新 更多