账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Elixir 的 集合操作问题
    31
    0

    Elixir小白一个。话不多说,直入主题。
    对于下面的page中的entries,如何优雅的插入:obj_c => "obj_c"而不适用中间变量呢。

    page = %{
        :page_size => "1",
        :page_total=> "10",
        :entries => [
            %{
                :obj_a => "obj_a",
                :obj_b => "obj_b"
                # 这里要插入:obj_c => "obj_c"
            },
            %{
                :obj_a => "obj_a",
                :obj_b => "obj_b",
                # 这里要插入:obj_c => "obj_c"
            }
        ]
    }

    使用中间变量的方法

    entry_new = Enum.map(
        page.entries,
        fn x -> Map.put(x, :obj_c, "obj_c") end
    )
    page = Map.put(page, :entries, entry_new)

    不适用中间变量的方法

    # 尝试一 不报错。但是page没有改变。这是为什么呢
    page.entries 
    |> Enum.map(fn x -> Map.put(x, :obj_c, "obj_c" end)
    # 尝试二 直接报错。page.entries 这里会被认为是函数,好奇怪。
    page.entries = page.entries 
    |> Enum.map(fn x -> Map.put(x, :obj_c, "obj_c" end)
    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 美丶mm 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部