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

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>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 内江市| 鸡西市| 涞源县| 江北区| 日土县| 广宁县| 扎赉特旗| 积石山| 当阳市| 通海县| 宁城县| 安陆市| 宁河县| 宁化县| 平顶山市| 梧州市| 泰宁县| 汝城县| 百色市| 乐山市| 都昌县| 庆安县| 怀集县| 澜沧| 桑植县| 新闻| 涟水县| 崇仁县| 梁山县| 姚安县| 托克逊县| 镇巴县| 华阴市| 白银市| 平谷区| 洛南县| 佛冈县| 旬阳县| 渝北区| 陕西省| 沾化县|