iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
1

今天的文章稍微整理一些實作上一定會用到的模組函式,當然實際上會有更多更多,但這篇文章所舉出的,會是幾乎一定會去使用的function。

  • Map
    Map模組內有一些可以對Map進行操控跟存取的函式。
  1. keys
    回傳一個包含map內的keys的List (類似 js 的 Object.keys)
  2. values
    回傳一個包含map內的values的List (類似 js 的 Object.values)

  • Enum
    Enum模組提供了取多的集合計算函式,在其他語言中最常與用的List Dic Array方法,都可能可以在Enum中找到相對應的功能,簡單來講就是對於集合資料型態的計算模組。Enum 可使用的對象是 List, Tuple, Map 等資料型態。
  1. map
    將一個集合映射到另一個集合的高階函式,第一個函式第二個參數為一個匿名函式。
iex> Enum.map([1, 6, 3], fn x -> x + 1 end)
[2, 7, 4]
  1. filter
    將一個集合進行篩選的高階函式,第一個函式第二個參數為一個匿名函式。
iex> Enum.map([1, 6, 3], fn x -> x < 4 end)
[1, 3]
  1. join
iex> Enum.join([1, 2, 5, 4])
"1254"
iex> Enum.join([1, 2, 5, 4], ",")
"1,2,5,4"
  1. with_index
    在使用如map、filter等函式時,會被帶入匿名函式的只會有值本身,使用with_index方法可以幫助我們把集合中的每一項變成一個帶有 index 的 tuple,這樣就能讓我們在使用高階函式時使用,例如下方範例。
iex> Enum.with_index([1, 2, 5, 4])
[{1, 0}, {2, 1}, {5, 2}, {4, 3}]

iex> Enum.with_index([1, 2, 5, 4]) 
  |> Enum.map(&("Key of #{elem(&1, 0)} is #{elem(&1, 1)}"))
["Key of 1 is 0", "Key of 2 is 1", "Key of 5 is 2", "Key of 4 is 3"]

上一篇
Day 13 |> 流程控制 (Control Flow)
下一篇
Day 15 |> 用Mix做出一個簡單的專案
系列文
用Elixir學習後端煉金術30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言