Map.dele-6ren">
gpt4 book ai didi

elixir - 在 Elixir 的结构中删除 nil 值的好方法是什么?

转载 作者:行者123 更新时间:2023-12-04 01:17:24 25 4
gpt4 key购买 nike

例如,我有一个结构

post = %Post{title: "Title", desc: nil}

我想得到
%{title: "Title"}

我的解决方案就像
post
|> Map.delete(:__struct__) # change the struct to a Map
|> Enum.filter(fn {_, v} -> v end)
|> Enum.into(%{})

它有效,但有更好的吗?

更新:

我觉得从 Struct 转换为 Map,然后是 Enum,然后又是 Map 很烦人。有简洁的方法吗?

最佳答案

而不是做

post
|> Map.delete(:__struct__) # change the struct to a Map
|> Enum.filter(fn {_, v} -> v end)
|> Enum.into(%{})

你可以做
post
|> Map.from_struct
|> Enum.filter(fn {_, v} -> v != nil end)
|> Enum.into(%{})

它只是比删除 __struct__ 稍微干净一点手动键。

关于elixir - 在 Elixir 的结构中删除 nil 值的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29351563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com