gpt4 book ai didi

function - Elixir:函数的结构默认值

转载 作者:行者123 更新时间:2023-12-02 19:34:35 24 4
gpt4 key购买 nike

结构体的默认值变量可以定义为函数而不是原始值吗?

最佳答案

结构体字段的默认值是在结构体定义时计算的表达式。

证明:

# struct.exs
defmodule M do
defstruct [a: IO.gets("> ")]
end

# ...

$ iex struct.exs
Erlang/OTP 17 [erts-6.0] ...

> hello
Interactive Elixir (0.13.3-dev) - ...
iex(1)> %M{}
%M{a: "hello\n"}

您可以定义一个函数来创建结构并设置其一些字段:

# struct.exs
defmodule M do
defstruct [a: nil]

def new(val) do
%M{a: val}
end
end

# ...

M.new(123)
#=> %M{a: 123}

关于function - Elixir:函数的结构默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23698725/

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