3. 你知道 Pure Function 帶來的好處嗎?

2023年12月27日

💎 加入 E+ 成長計畫 與超過 350+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

我們先比較以下兩段程式碼:

A.

def weekday():
return datetime.now().strftime("%A")
print(weekday())

B.

def weekday(date):
return date.strftime("%A")
print(weekday(datetime.now()))

上面兩段程式碼都會印出 "Monday" ,但是第二段程式碼明顯比第一段好,因為第二段程式碼的 weekday 函式更「純」,純函式 (Pure function) 有以下好處:

  1. 易於測試:相同的輸入總是得到相同的輸出,無需模擬或控制外部環境,以上例來說,無須設定外部時間。
  2. 減少副作用:不會改變任何狀態,意味著不會改到外面的 list、dictionary 等內部的值。
  3. 提高可讀性:因為他的獨立性,意味著可以被單獨理解。
  4. 支持併行和分布式運算: 因為沒有共享狀態和副作用,因此利於多線和分布式的環境。

什麼樣的函式叫做純函式?

  1. 給定相同的輸入總是有相同的輸出
  2. 沒有任何的副作用(Side effects) ,表示不會改變任何外部的狀態。
🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們