Swift Review#17[閉包closures:Trailing closure syntax]

影山小麥機
Jun 30, 2021

前言

承繼上一篇描述閉包的基本特性,以下會有一點對於閉包省略語法:尾隨閉包(Trailing closure syntax)的討論。我之前學的時候,雖然Swift、100 Days of Swift 上面描述的是一個為了增加可讀性的概念,但我那個時候越看越覺得不可讀,反而以前的閉包比較可愛,所以特意將尾隨閉包當作是一個短章節來描述。

正文

尾隨閉包這件事情很有趣,它是一個極度省略的概念(如果就表象上看起來啦),假若今天有個函式長這樣:

閉包在裡面叫做action,傳入型別為()->Void

一般我們在呼叫這個函式的時候,照理來說應該長得像下面這個樣子,所有的東西都會好好地顯示在畫面上:

正常的函式呼叫

但尾隨閉包不是這樣,它會把閉包的部分省略掉,也就是說,在下面這個尾隨閉包的案例中,閉包的部分因為型別是()->Void,所以可以這樣做:

尾隨閉包的函式呼叫

工程師真是一種奇怪的東西,東省西省,不過確實如果仔細讀意思的話,我們可以很清楚的知道,省略的東西就是所謂閉包的部分。

只有一個閉包在裡面的情況

不過,假如今天我們只有一個閉包在函式裡面的話,我們在呼叫函數的時候,假若裡面什麼東西都沒有要傳進去的參數或值,可以把函式的括號部分省略,變成下面這個樣子:

總而言之,尾隨閉包幾乎可以說是一個省略東西的狀態,但卻也讓呼叫的時候,更清楚的知道,尾隨在呼叫函式後的內容,就是所謂的閉包的部分了。

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