给定一张地图,可以这样写:
mymap
|> put_in([:foo, :bar], "hello")
|> put_in([:attr1], "how are you")
|> put_in([:attr2], "goodbye")
Run Code Online (Sandbox Code Playgroud)
理想情况下,我能够对结构执行相同的操作:
mystruct
|> put_in(.foo.bar, "hello")
|> put_in(.attr1, "how are you")
|> put_in(.attr2, "goodbye")
Run Code Online (Sandbox Code Playgroud)
这样的事情可能吗?目前我正在写:
mystruct = put_in(mystruct.foo.bar, "hello")
mystruct = put_in(mystruct.attr1, "how are you")
put_in(mystruct.attr, "goodbye")
Run Code Online (Sandbox Code Playgroud)
它可以完成工作,但不如使用管道运算符那么优雅。
elixir ×1