作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
put_in([:attr1], "how are you") |> put_in-6ren">
给定一张 map ,可以这样写:
mymap
|> put_in([:foo, :bar], "hello")
|> put_in([:attr1], "how are you")
|> put_in([:attr2], "goodbye")
理想情况下,我可以对结构做同样的事情:
mystruct
|> put_in(.foo.bar, "hello")
|> put_in(.attr1, "how are you")
|> put_in(.attr2, "goodbye")
这样的事情可能吗?目前我正在写:
mystruct = put_in(mystruct.foo.bar, "hello")
mystruct = put_in(mystruct.attr1, "how are you")
put_in(mystruct.attr, "goodbye")
它可以完成工作,但不如使用管道运算符优雅。
最佳答案
实际上,您可以将 put_in
与结构一起使用。这就是您想要的,对于以后遇到这个问题的任何人:
mymap
|> put_in([:foo, :bar] |> Enum.map(&Access.key/1), "hello")
|> put_in([Access.key(:attr1)], "how are you")
|> put_in([Access.key(:attr2)], "goodbye")
关于elixir - 是否可以通过管道对结构进行 `put_in` 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35375391/
给定一张 map ,可以这样写: mymap |> put_in([:foo, :bar], "hello") |> put_in([:attr1], "how are you") |> put_in
我是一名优秀的程序员,十分优秀!