iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0

回顧

  • 維護一個有歷史故事的專案,需要的是耐心和熱忱,每天從紅色的叉叉的錯誤中學習成長。
  • 依然無法成為釣魚大師系列來到了第14篇,原本預計在前面幾天看看 Amplify 文件、解釋一下做了什麼設定,再開好資源,一切就可以順水推舟。
  • 想像總是美好又不切實際,不出意外的話就出意外了!
  • 其中只更新了一次程式碼,後來就不斷踩到地雷。所以還是不要搶快,來修問題...

問題說明

  • 原本參考 Amplify v1 寫出來的幾個 Amplify.Auth 進行登入的函式,在我升級完 Amplify 套件後,就莫名其妙的壞掉了 ...
    https://ithelp.ithome.com.tw/upload/images/20230915/20130149p04ddm6hcH.png
  • 錯誤訊息透露了是 “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.
    • 一顆跟屁蟲刈包吃不飽可以吃兩顆,以下幾個範例只吃一顆。
      https://ithelp.ithome.com.tw/upload/images/20230915/201301493R3efbmdBo.png
  • 上面截圖顯示,第一段是一個韓式如何被定義、第二和第三段則是兩種 餵參數 的寫法
    1. 在定義函式的寫法,小括號中,有參數的標籤,有冒號連接,然後是一個 箭頭函式 型態的參數
    2. 為中間那段,是帶有標籤的參數傳遞型態、後面接的大括號中,包夾了要做的事情。
    3. 在下面那段,則是刈包寫法,呼叫函式時,不指名參數名稱,後面尾隨的刈包,則是掛包裡面包的菜菜肉肉。

參考資料


上一篇
【Day 13】 更新套件後、那個 Trailing closure 語法產生的問題探討
下一篇
【Day 15】 更新 Amplify v2 語法、整合 Async / Await
系列文
依然無法成為釣魚大師也要努力摸魚!!辣個吃魚神器 APP 第二彈33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言