在 Go 中使用指向數組的指標
在 Go 中,了解如何操作陣列和切片至關重要。當嘗試透過指標存取陣列時,您可能會遇到錯誤“index of type *[]int”。本文探討了透過指標存取陣列的正確方法。
最初,您可能看起來可以透過以下指標存取陣列:
func conv(x []int, xlen int, h []int, hlen int, y *[]int) { for i := 0; i < xlen; i++ { for j := 0; j < hlen; j++ { *y[i+j] += x[i]*h[j] } } }
但是,Go 的文件強調了這一點將陣列傳遞給函數時,通常首選使用切片而不是指針。這是因為切片是引用類型,提供了高效率的傳遞和操作。
您可以修改程式碼以使用切片,而不是使用指標:
func conv(x []int, xlen int, h []int, hlen int, y []int) { // y becomes a slice for i := 0; i < xlen; i++ { for j := 0; j < hlen; j++ { y[i+j] += x[i]*h[j] } } }
或者,您可以傳遞整個陣列也作為一個切片。 Go 有效地處理切片,使其成為存取陣列的可行選項。
總之,在 Go 中使用陣列和指標時,了解可用的不同選項並根據您的特定情況使用最合適的方法非常重要要求。切片通常提供一種更有效率、更方便的方式來存取和操作陣列。
以上是如何使用指標正確存取Go數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!