Elixir語言中 Application.get_env
相關用法介紹如下。
用法:
get_env(app, key, default \\ nil)
@spec get_env(app(), key(), value()) :: value()
在 app
的環境中返回 key
的值。
如果配置參數不存在,則函數返回default
值。
重要提示:如果您在編譯時讀取應用程序環境,例如,在模塊定義內部而不是在函數內部,請參閱
。compile_env/3
重要提示:如果您正在編寫一個供其他開發人員使用的庫,通常建議避免使用應用程序環境,因為應用程序環境實際上是一個全局存儲。如需更多信息,請閱讀我們的library guidelines。
例子
通常用於讀取 OTP 應用程序的配置。由於混合配置通常用於配置應用程序,我們將以此作為說明。get_env/3
考慮一個新的應用程序 :my_app
。 :my_app
包含一個支持數據庫池的數據庫引擎。數據庫引擎需要知道每個數據庫的配置,並且該配置由 :my_app
環境中的鍵值對提供。
config :my_app, Databases.RepoOne,
# A database configuration
ip: "localhost",
port: 5433
config :my_app, Databases.RepoTwo,
# Another database configuration (for the same OTP app)
ip: "localhost",
port: 20717
config :my_app, my_app_databases: [Databases.RepoOne, Databases.RepoTwo]
:my_app
使用的我們的數據庫引擎需要知道存在哪些數據庫,以及數據庫配置是什麽。數據庫引擎可以調用Application.get_env(:my_app, :my_app_databases, [])
來檢索數據庫列表(由模塊名稱指定)。
然後引擎可以遍曆列表中的每個存儲庫並調用Application.get_env(:my_app, Databases.RepoOne)
等來檢索每個存儲庫的配置。在這種情況下,每個配置都會是一個關鍵字列表,因此您可以使用
模塊甚至Keyword
模塊中的函數對其進行遍曆,例如:Access
config = Application.get_env(:my_app, Databases.RepoOne)
config[:ip]
相關用法
- Elixir Application.ensure_started用法及代碼示例
- Elixir Application.compile_env用法及代碼示例
- Elixir Application.app_dir用法及代碼示例
- Elixir Application用法及代碼示例
- Elixir Agent.get_and_update用法及代碼示例
- Elixir Access.filter用法及代碼示例
- Elixir Access.all用法及代碼示例
- Elixir Atom用法及代碼示例
- Elixir Atom.to_string用法及代碼示例
- Elixir Agent.get用法及代碼示例
- Elixir Access.key用法及代碼示例
- Elixir Access.get用法及代碼示例
- Elixir Access.key!用法及代碼示例
- Elixir Atom.to_charlist用法及代碼示例
- Elixir Agent.cast用法及代碼示例
- Elixir Agent.start_link用法及代碼示例
- Elixir Access.fetch用法及代碼示例
- Elixir Access.at!用法及代碼示例
- Elixir Agent.update用法及代碼示例
- Elixir Agent.stop用法及代碼示例
- Elixir Access.at用法及代碼示例
- Elixir Access用法及代碼示例
- Elixir Access.fetch!用法及代碼示例
- Elixir Access.elem用法及代碼示例
- Elixir Agent.start用法及代碼示例
注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Application.get_env(app, key, default \\ nil)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。