这两个在Erlang中哪个更有效?这个:

ValueA = MyRecord#my_record.value_a,
ValueB = MyRecord#my_record.value_b.

或这个:
{ValueA, ValueB} = {MyRecord#my_record.value_a, MyRecord#my_record.value_b}.



我问,因为后者有时使我需要多行来适应我希望保留的80个字符的行长度限制,而且我倾向于避免这样做:
{ValueA, ValueB} = { MyRecord#my_record.value_a
                   , MyRecord#my_record.value_b }.

最佳答案

它们生成完全相同的代码!如果您想要更少的代码,请尝试使用:

#my_record{value_a=ValueA,value_b=ValueB} = MyRecord

这也会生成相同的代码。通常,如果可以,请使用模式匹配。它永远不会更糟,通常更好。在这种情况下,它们都需要做最少的工作。

通常,当您知道该代码存在速度问题时,编写最清晰,看上去最好的代码,并且只担心这些优化类型。

09-26 03:14