这两个在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
这也会生成相同的代码。通常,如果可以,请使用模式匹配。它永远不会更糟,通常更好。在这种情况下,它们都需要做最少的工作。
通常,当您知道该代码存在速度问题时,编写最清晰,看上去最好的代码,并且只担心这些优化类型。