學習新語言的一個途徑就是直接上戰場。我選擇訪問數據庫入手。git
https://github.com/xerions/mariaexgithub
第一步就是創建到Mysql的鏈接。sql
@spec start_link(Keyword.t) :: {:ok, pid} | {:error, Mariaex.Error.t | term}
def start_link(opts) do
DBConnection.start_link(Protocol, opts)
end數據庫
僅此一行有幾個語言現象:函數
Mariaex.start_link({hostname:"127.0.0.1",username:"root",password:"111111", database:"test"})學習
Mariaex爲模塊。相似於其餘語言中的包。atom
def start_link(opts) do ....end 爲函數定義。.net
@spec 是特殊一點。Elixir是動態語言,這個是補充說明這個函數的規範。能夠用於文檔和代碼分析。但不參與編譯過程。沒有也能夠。htm
返回值是元組。文檔
好比:{:ok, 3} 就是一個元組。:ok叫作atomic類型,就是名字和值是一個意思。
就像true和false同樣。
r = {:ok, 3}
elem(r, 0)
會取到第一個元素的值,如此類推。
https://www.tutorialspoint.com/elixir/elixir_lists_and_tuples.htm