当修改是我们以编程方式指定的字段时,是否有任何相对简单的方法来(复制和)修改 Erlang 中的记录?
例如:
-record(my_record, {foo = 0, bar = 0}).
modify_record(Record, Field, Value) ->
Record#my_record{Field = Value}.
这样人们就可以做类似的事情modify_record(#my_record{foo = 1}, bar, 42)
,或者,modify_record(some_method_that_returns_a_my_record(), foo, 3.14)
编译类似的东西我会得到像这样的错误
field 'Field' is not an atom or _ in record my_record
我意识到有一些关于如何转换为/从 proplist 的示例,但我希望有更直接的东西。