我在elixir中有以下代码:
def get_trackerid(imei) do
client = get_new_client()
{:ok, result} = :cqerl.run_query(client, "SELECT * FROM trackers_by_imei where imei = \'#{imei}\';")
row = :cqerl.all_rows(result)
end
Run Code Online (Sandbox Code Playgroud)
现在,现在许多函数都在调用get_trackerid函数,每次调用函数时,都会调用数据库.
有没有办法在elixir中编写函数,结果存储在局部变量中.因此,当下次请求同一个imei的trackerid时,我可以从本地变量本身获取数据.
我认为elixir中没有全局变量的概念,所以这不是一个选项,对吧?
Elixir 似乎是一种很棒的语言。但是声明全局常量的最佳约定是什么?
我希望模块属性可能是最合适的解决方案?
交换下面的 Horizontal_line 定义可以修复编译错误。
defmodule ElixirTesting do
horizontal_line = String.duplicate("-", 80)
# def horizontal_line, do: String.duplicate("-", 80)
def test_global_constant do
IO.puts(horizontal_line)
IO.puts("Console Report Section Title")
IO.puts(horizontal_line)
true
end
end
Run Code Online (Sandbox Code Playgroud) elixir ×2