gpt4 book ai didi

Elixir 案例陈述

转载 作者:行者123 更新时间:2023-12-05 09:14:11 24 4
gpt4 key购买 nike

我写了一个声明如下:

case length(clicks) do
0 ->
date_list = []
1 ->
date_list = start_date
_ ->
date_list = Interval.new(from: start_date, until: end_date) |> Enum.to_list
end

似乎从未设置过 date_list。我做错了什么?

最佳答案

虽然 Denis 的回答在技术上是正确的,但使用 Kernel.length/1通常是一种不好的做法,因为它遍历整个列表

改用直接模式匹配:

date_list =
case clicks do
[] -> []
[_] -> start_date
[_ | _] ->
[from: start_date, until: end_date]
|> Interval.new()
|> Enum.to_list()
end

另请注意,Elixir 准则强制要求以原始值 开始管道,并且始终在函数调用中使用圆括号


根据您最初问题中的作用域问题,由于 Elixir 中没有对变量的赋值,而且根本没有变量,编译器不能有薛定谔本地 date_list。请记住:date_list = ... 不是赋值,而是重新绑定(bind)

关于 Elixir 案例陈述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54749292/

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