通道是否透過引用隱式傳遞?
Go 之旅提供了一個通道範例,引發了有關其傳遞機制的問題。透過將通道傳遞到 sum 函數中,函數內對其所做的變更將持續存在,從而保留隱式參考傳遞的可能性。
說明
從技術上講,通道傳遞時會被複製,因為 make 創建了有效充當指針的堆分配內存。但是,該指標並未公開,從而允許將通道視為引用類型。
規格闡明內建 make 函數傳回 T 型別(而非 *T)的值並初始化記憶體。當與通道一起使用時,make 會初始化通道並使其可用作引用類型。
意義
此行為意味著當您將使用make 建立的通道傳遞給函數時,您可以讀取和寫入它們,而無需複製底層數據。
引用型別與值型別
以下型別經由引用傳遞到:
以上是Go 通道是按引用傳遞還是按值傳遞?的詳細內容。更多資訊請關注PHP中文網其他相關文章!