精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Elixir 1.3帶來(lái)新的語(yǔ)言功能、API和改進(jìn)后的工具

責(zé)任編輯:editor004

作者:Sergio De Simone

2016-07-04 11:47:00

摘自:INFOQ

José Valim最近宣布Elixir 1 3中棄用了必要賦值,添加了一些新的類(lèi)型和存取器,提升了其Mix搭建工具和ExUnit單元測(cè)試框架。Elixir 1 3棄用了對(duì)需要在外部作用域進(jìn)行訪問(wèn)的變量的賦值,如果發(fā)現(xiàn)有這樣的情況就會(huì)立刻發(fā)出警告。

José Valim最近宣布Elixir 1.3中棄用了必要賦值,添加了一些新的類(lèi)型和存取器,提升了其Mix搭建工具和ExUnit單元測(cè)試框架。

Elixir 1.3棄用了對(duì)需要在外部作用域進(jìn)行訪問(wèn)的變量的賦值,如果發(fā)現(xiàn)有這樣的情況就會(huì)立刻發(fā)出警告。這個(gè)操作的根據(jù)是給在外部作用域中的變量進(jìn)行賦值,從而給內(nèi)部作用域中的值添加隱式返回值。例如下面的函數(shù)定義:

def format(message, opts) do path = if (file = opts[:file]) && (line = opts[:line]) do relative = Path.relative_to_cwd(file) message = Exception.format_file_line(relative, line) <> " " <> message relative end {path, message}end

if塊語(yǔ)句,除了返回path的值還改變了message中的值,這個(gè)值后面從封閉的函數(shù)中由path返回。在 Elixir 1.3中這被認(rèn)為是錯(cuò)誤的操作,需要重構(gòu)成如下的代碼,很明確地定義if塊返回兩個(gè)值后方可使用:

def format(message, opts) do path = if (file = opts[:file]) && (line = opts[:line]) do relative = Path.relative_to_cwd(file) message = Exception.format_file_line(relative, line) <> " " <> message {relative, message} end {path, message}end

另外一個(gè)可以方便地遍歷嵌套的數(shù)據(jù)結(jié)構(gòu)的語(yǔ)言功能是存取選擇器。以下的代碼中向你展示了如何遍歷一個(gè)與language值相關(guān)聯(lián)的map,并將name值中所有的元素都轉(zhuǎn)換為大寫(xiě):

iex> update_in myMap, [:languages, Access.all(), :name], &String.upcase/1

Elixir的搭建工具M(jìn)ix現(xiàn)在可以進(jìn)行對(duì)照檢查,這個(gè)功能非常實(shí)用,比如說(shuō)在檢測(cè)對(duì)不存在的模塊和函數(shù)的調(diào)用時(shí),或是定位所有調(diào)用了屬于某個(gè)模塊的函數(shù)時(shí),或是產(chǎn)生依賴(lài)關(guān)系圖的時(shí)候。另外,Mix簡(jiǎn)化了其輸出,因此可以更方便地發(fā)現(xiàn)警告。Elixir 1.3中Mix的另一大改進(jìn)是可以更好地進(jìn)行依賴(lài)跟蹤,因此編譯時(shí)間會(huì)進(jìn)一步縮短。

Elixir的單元測(cè)試框架ExUnit利用Mix的對(duì)照檢查功能添加了一個(gè)新標(biāo)志--stale,它可以保證從上次運(yùn)行之后,只有修改過(guò)的單元測(cè)試才會(huì)被執(zhí)行。ExUnit還優(yōu)化了斷言輸出并提升了對(duì)于使用命名塊的測(cè)試。

Elixir 1.3還進(jìn)行了更多改變。你可以閱讀發(fā)行說(shuō)明中的完整列表。

查看英文原文:Elixir 1.3 Brings New Language Features, APIs, and Improved Tooling

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)

  • <menuitem id="jw4sk"></menuitem>

  • 主站蜘蛛池模板: 武平县| 石门县| 绥阳县| 茶陵县| 东明县| 漳平市| 老河口市| 龙州县| 防城港市| 米易县| 鸡西市| 岗巴县| 柳江县| 新宾| 广元市| 襄汾县| 年辖:市辖区| 新宾| 长宁县| 雷山县| 莫力| 伊吾县| 棋牌| 印江| 莒南县| 宁安市| 浙江省| 昌黎县| 五峰| 肥城市| 东台市| 容城县| 南阳市| 达拉特旗| 湾仔区| 正阳县| 鹤壁市| 民权县| 远安县| 内乡县| 嵊泗县|