学习新语言的一个途径就是直接上战场。我选择访问数据库入手。
第一步就是建立到Mysql的连接。
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为模块。类似于其他语言中的包。
def start_link(opts) do ....end 为函数定义。
是特殊一点。Elixir是动态语言,这个是补充说明这个函数的规范。可以用于文档和代码分析。但不参与编译过程。没有也可以。
返回值是元组。
比如:{:ok, 3} 就是一个元组。:ok叫做atomic类型,就是名字和值是一个意思。
就像true和false一样。
r = {:ok, 3}
elem(r, 0)
会取到第一个元素的值,如此类推。