Take a break#3[關於閉包…]

影山小麥機
Jun 30, 2021

今天整天的狀況很零散:

早上讀著閉包的東西,下午因為房東要來,結果放我鴿子….所以後來就把論文最後的一小部分修完,一些零瑣的行政流程也解決。

總之讀著讀著就發現自己理解的跟以前理解的好像有一點出入,我大概遇到的情況是這樣,我原先以為閉包跟函式是兩個完全不相同的東西,但結果好像是有相關,又沒有相關:

今天看了一個描述(有附資料來源):

  1. 函式就是一種有名稱的閉包。
  2. 巢狀函式就是一種有名稱且被包含在另一個函式中的閉包。
  3. 閉包表達式就是使用簡潔語法來描述的一種沒有名稱的函式,可以在程式中被傳遞和使用。

所以針對第一點,也就是說,閉包就是一種沒有名稱的函式囉?但是它們兩個起手式不是完全不一樣嗎?

一個是直接宣稱func 函式名稱( ){ }

一個是let 閉包名稱 = { }

怎麼說它們是種類一樣的東西呢?所以第一點是怎麼證明的呢?

第二點我沒有讀得很清楚,應該會回去再補足。

第三種我仔細想了一下,因為我在學的時候,看到的是let開頭,所以就直接認定這整個都叫做閉包,但其實真正的閉包表達式只有下面這個樣子?:

那我好奇的是:

在這個函式裡面,action:()->Void 應該就算是一個閉包了吧?但它的樣子跟上面的怎麼差那麼多?還是這是經過簡化的嗎?

A few minute later…..

好,不管,剛剛回去仔細讀了一下巢狀函式,發現有全域函式(global functions)跟巢狀函式(nested function)的差別…可能函式那一章節要長出另一個篇章了。

進而,我之後管理我的文章,可能會以延伸的方式去進行,假若原先的文章有更多的延伸,我可能就會以:#6延伸出#6–1之類的,這樣也比較知道哪個地方的知識量要補足。

總之,現在都是先以框架性、概念性的理解為主軸。如果概念不懂,就問或交流吧!

2021.06.30 好想工作室Day3

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

影山小麥機
影山小麥機

Written by 影山小麥機

本職為Mobile工程師,熱愛分享視野,也樂意站在ChatGPT的肩膀上。訂閱小麥機,收割技術、職涯、人生的難題。

No responses yet

Write a response