首頁 > 後端開發 > Golang > 主體

Go 通道是按引用傳遞還是按值傳遞?

Mary-Kate Olsen
發布: 2024-11-17 18:46:02
原創
681 人瀏覽過

Are Go Channels Passed by Reference or Value?

通道是否透過引用隱式傳遞?

Go 之旅提供了一個通道範例,引發了有關其傳遞機制的問題。透過將通道傳遞到 sum 函數中,函數內對其所做的變更將持續存在,從而保留隱式參考傳遞的可能性。

說明

從技術上講,通道傳遞時會被複製,因為 make 創建了有效充當指針的堆分配內存。但是,該指標並未公開,從而允許將通道視為引用類型。

規格闡明內建 make 函數傳回 T 型別(而非 *T)的值並初始化記憶體。當與通道一起使用時,make 會初始化通道並使其可用作引用類型。

意義

此行為意味著當您將使用make 建立的通道傳遞給函數時,您可以讀取和寫入它們,而無需複製底層數據。

引用型別與值型別

以下型別經由引用傳遞到:

  • 切片
  • 切片
  • >
  • 頻道
指標

函數資料數字、布林值和結構體等類型在傳遞時會複製轉換為函數。

以上是Go 通道是按引用傳遞還是按值傳遞?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板