Go:為什麼我不能直接附加到地圖中找到的切片?
在 Go 中,當使用地圖時,您可能會遇到需要將值附加到地圖內現有切片的情況。但是,嘗試直接附加到透過存取返回的切片可能會導致變更未儲存。
為了說明此問題,請考慮以下程式碼片段:
在註解行,嘗試直接附加到由aminoAcidsToCodons[aminoAcid]傳回的切片。但是,此操作會失敗,因為傳回的是切片的副本,而不是對映射中切片的參考。
此行為的原因在於 Go 中追加的工作方式。當超出切片底層數組的容量時,append 會建立一個新切片並將現有元素複製到其中。然後返回這個新切片,而原始切片保持不變。
因此,要成功追加到映射中的切片,必須將追加操作的結果指派回映射中對應的鍵。這可以透過使用 nil 切片作為附加的第一個參數來進一步簡化,如以下修改後的程式碼所示:
以上是為什麼我不能直接附加到 Go Map 的切片?的詳細內容。更多資訊請關注PHP中文網其他相關文章!