技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2023 iThome 鐵人賽
DAY
14
0
Mobile Development
依然無法成為釣魚大師也要努力摸魚!!辣個吃魚神器 APP 第二彈
系列 第
14
篇
【Day 14】 談 Swift 語法:Trailing closure 是什麼
15th鐵人賽
swift
釣魚術
trailing
closure
二坪山小弱砲
團隊
我在鐵人賽烙賽、也在外木山裸泳◑ω◐
2023-09-15 23:15:45
483 瀏覽
分享至
回顧
維護一個有歷史故事的專案,需要的是耐心和熱忱,每天從紅色的叉叉的錯誤中學習成長。
依然無法成為釣魚大師系列來到了
第14篇
,原本預計在前面幾天看看 Amplify 文件、解釋一下做了什麼設定,再開好資源,一切就可以順水推舟。
想像總是美好又不切實際,不出意外的話就出意外了!
其中
只更新了一次程式碼
,後來就不斷踩到地雷。所以還是不要搶快,來修問題...
問題說明
原本參考 Amplify v1 寫出來的幾個
Amplify.Auth 進行登入的函式
,在我升級完 Amplify 套件後,就莫名其妙的壞掉了 ...
錯誤訊息透露了是 “Extra trailing closure passed in call”
每個字分開看都看得懂⋯⋯
Trailing
是跟隨、跟屁蟲的意思。
我猜,他的意思是說,我多傳遞了一對跟隨閉包 ... 真的是這樣嗎?
關於
Trailing Closure
,手冊是這麼說的:
If you need to pass a closure expression to a function as the function’s final argument and the closure expression is long, it can be useful to write it as a trailing closure instead.
如果你需要傳遞
被{ }包起來的表示法
的東西 (簡稱叫
括包
好了),當作函式的最後一個參數,但是這個參數實在是太長了,他會讓你的程式碼不好被閱讀,那就可以用
Trailing Closure
(簡稱叫
跟屁蟲刈包
好了)、冗長的參數不好吞嚥、用跟屁蟲ㄍㄨㄚˋ包夾起來餵他!!
You write a trailing closure after the function call’s parentheses, even though the trailing closure is still an argument to the function.
你在函式呼叫的呼叫括號後方,寫一個
跟屁蟲刈包
,即使
刈包
仍然是該呼叫函式的其中一個參數。
When you use the trailing closure syntax, you don’t write the argument label for the first closure as part of the function call.
用
跟屁蟲刈包
的寫法沒有在囉唆的,不過,第一顆
跟屁蟲刈包
不能寫出參數的標籤。
A function call can include multiple trailing closures; however, the first few examples below use a single trailing closure.
一顆
跟屁蟲刈包
吃不飽可以吃兩顆,以下幾個範例只吃一顆。
上面截圖顯示,第一段是一個韓式如何被定義、第二和第三段則是兩種
餵參數
的寫法
在定義函式的寫法,小括號中,有參數的標籤,有冒號連接,然後是一個
箭頭函式
型態的參數
為中間那段,是帶有標籤的參數傳遞型態、後面接的大括號中,包夾了要做的事情。
在下面那段,則是
刈包
寫法,呼叫函式時,不指名參數名稱,後面尾隨的
刈包
,則是掛包裡面包的菜菜肉肉。
參考資料
The Swift Programming Language - Closures
Trailing Closure
留言
追蹤
檢舉
上一篇
【Day 13】 更新套件後、那個 Trailing closure 語法產生的問題探討
下一篇
【Day 15】 更新 Amplify v2 語法、整合 Async / Await
系列文
依然無法成為釣魚大師也要努力摸魚!!辣個吃魚神器 APP 第二彈
共
33
篇
目錄
RSS系列文
訂閱系列文
8
人訂閱
29
【Day 29】 降低傳輸成本的設計
30
【Day 30】 郵票計數器的問題
31
【Day 31】加入 Core ML
32
【Day 32】初探 AWS Amplify Predictions
33
【Day 33】沉底掉組
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22195
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
請問內網IP如何轉外網IP?
兩端防火牆使用IPSEC互PING之問題
如何寫公式才能利用excel 觸發一個數據時傳送一個訊息給 自已的line呢?有沒有可以用其它方式,來取代line notify 的方法,因為line 開始收費
Windows7升級Windows10後網路功能異常
python爬蟲 動態生成網頁104人力銀行
區域網路問題提問
新手學習編程,哪種編程語言好?
vmware 虛擬機(windows)裡顯示使用容量與實際檔案容量不符合
2台 Hyper-V 2008 R2 叢集主機(硬體規格相同), 如何加入一台新機? 謝謝.
防火牆與DNS請教
熱門回答
請問內網IP如何轉外網IP?
防火牆與DNS請教
Fortigate 50B 重置密碼
新手學習編程,哪種編程語言好?
區域網路問題提問
熱門文章
每日一篇學習筆記 直到我做完專題 :( [Day32]
每日一篇學習筆記 直到我做完專題 :( [Day33]
每日一篇學習筆記 直到我做完專題 :( [Day34]
每日一篇學習筆記 直到我做完專題 :( [Day35]
隨時切換 WINDOWS 右鍵新舊版選單
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}