Elixir 长生不老药案例陈述
我写了一份声明如下:Elixir 长生不老药案例陈述,elixir,Elixir,我写了一份声明如下: 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 似乎日期列表从未设置过。我做错了什么?您在cas
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
似乎日期列表从未设置过。我做错了什么?您在case语句中分配内部变量。按如下方式从外部分配变量:
date_list = case length(clicks) do
0 ->
[]
1 ->
start_date
_ ->
Interval.new(from: start_date, until: end_date) |> Enum.to_list
end
您正在case语句中分配内部变量。按如下方式从外部分配变量:
date_list = case length(clicks) do
0 ->
[]
1 ->
start_date
_ ->
Interval.new(from: start_date, until: end_date) |> Enum.to_list
end
虽然丹尼斯的答案在技术上是正确的,但使用通常是一种不好的做法,因为它贯穿了整个列表 改用直接模式匹配:
date_list =
case clicks do
[] -> []
[_] -> start_date
[_ | _] ->
[from: start_date, until: end_date]
|> Interval.new()
|> Enum.to_list()
end
还请注意,Elixir指南强制以原始值启动管道,并且在调用函数时始终使用括号
根据您最初问题中的范围界定问题,由于Elixir中没有变量赋值,而且根本没有变量,编译器不能有Schrỏdinger本地日期列表。记住:日期列表=。。。这不是作业,而是重新绑定。虽然丹尼斯的答案在技术上是正确的,但使用通常是一种不好的做法,因为它会遍历整个列表 改用直接模式匹配:
date_list =
case clicks do
[] -> []
[_] -> start_date
[_ | _] ->
[from: start_date, until: end_date]
|> Interval.new()
|> Enum.to_list()
end
还请注意,Elixir指南强制以原始值启动管道,并且在调用函数时始终使用括号
根据您最初问题中的范围界定问题,由于Elixir中没有变量赋值,而且根本没有变量,编译器不能有Schrỏdinger本地日期列表。记住:日期列表=。。。这不是一项任务,而是重新绑定。我很好奇,最近所有与日期相关的问题,你到底想实现什么。我正在建立一个内部工具来重定向和跟踪流量,用图表来显示流量!数据来自Postgres,你需要在稀疏的日子里加上零,以便用JS实际绘制图形;我真的把整个事情当作一个练习来发展我的长生不老药技能。在做了很多Python之后,老实说Elixir是我有幸使用过的最漂亮的语言之一。我很好奇你最近在所有与日期相关的问题上到底想实现什么。我正在建立一个内部工具来重定向和跟踪流量,用图表来显示流量!数据来自Postgres,你需要在稀疏的日子里加上零,以便用JS实际绘制图形;我真的把整个事情当作一个练习来发展我的长生不老药技能。在使用了大量Python之后,老实说Elixir是我有幸使用过的最漂亮的语言之一。出于某种原因,我认为列表的长度应该缓存在某个地方,这是关于Kernel.length/1的一个有趣的观察结果。出于某种原因,我认为列表的长度应该缓存在某个地方。