首頁 >後端開發 >Golang >為什麼 Go 中的閉包體後面需要括號「()」?

為什麼 Go 中的閉包體後面需要括號「()」?

DDD
DDD原創
2024-12-04 02:40:10655瀏覽

Why Are Parentheses

理解Go 中閉包體中「()」的用途

在Go 中,遇到「()」的使用並不罕見()」位於閉包體之後,無論是在函數文字或defer語句中。 " 用於立即呼叫函數。這是必要的,因為閉包中指定的函數沒有指派給變數。相反,它是直接執行的。 「()」允許編譯器計算函數並傳回其結果。 Go 規範規定defer 語句後面的表達式必須始終是函數呼叫。 「()」立即執行函數閉包,允許在觸發defer 時註冊執行。顯示函數閉包本身就是一個閉包。中的閉包是在一個函數在另一個函數中聲明並從封閉範圍捕獲變數時創建的。 。

範例

到為了說明呼叫函數和呼叫閉包之間的區別,請考慮以下範例:

在此範例中,第一個printA()呼叫立即呼叫函數,而第二次呼叫則呼叫一個從封閉範圍捕獲變數 a 的閉包。

以上是為什麼 Go 中的閉包體後面需要括號「()」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn