gpt4 book ai didi

erlang - 模式匹配 Elixir 记录 Aganist 结构

转载 作者:行者123 更新时间:2023-12-02 09:01:10 26 4
gpt4 key购买 nike

有没有办法将记录与结构进行模式匹配?例如,给出下面的记录和结构。

struct = %User{name: "", twitter:""}
record = {User, "mossplix ", "@mossplix"}

最佳答案

您需要手动匹配字段

defmodule Test do
def foo(%User{name: name, twitter: twitter}, {User, name, twitter}) do
IO.puts "match :)"
end

def foo(_struct, _record) do
IO.puts "no match :("
end
end

或者您需要先将其转换为结构体,然后再匹配两者

defmodule Test do
def foo(struct, record) do
do_foo struct, user_record_to_struct(record)
end

defp user_record_to_struct({User, name, twitter}) do
%User{name: name, twitter: twitter}
end

defp do_foo(struct, struct) do
IO.puts "match :)"
end

defp do_foo(_struct1, _struct2) do
IO.puts "no match :("
end
end

关于erlang - 模式匹配 Elixir 记录 Aganist 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30496278/

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