Go編程語言或Golang中的指針是一個(gè)變量,用于存儲(chǔ)另一個(gè)變量的內(nèi)存地址。而數(shù)組是固定長(zhǎng)度的序列,用于將同類元素存儲(chǔ)在內(nèi)存中。
您可以使用指向數(shù)組的指針,并將其作為參數(shù)傳遞給函數(shù)。為了理解這個(gè)概念,讓我們舉個(gè)實(shí)例。在下面的程序中,我們將使用一個(gè)包含5個(gè)元素的指針數(shù)組arr。我們要使用函數(shù)更新此數(shù)組。意味著在函數(shù)內(nèi)部修改數(shù)組(此處的數(shù)組為{78,89,45,56,14}),并將在調(diào)用者處反映出來。因此,這里我們采用了updatearray函數(shù),該函數(shù)具有指向數(shù)組的指針作為參數(shù)類型。使用updatearray(&arr)代碼,我們傳遞了數(shù)組的地址。函數(shù)內(nèi)(*funarr)[4] = 750 或 funarr[4] = 750 代碼使用解引用方式給數(shù)組賦新值,該值將反映在原始數(shù)組中。最后,程序?qū)⒔o出輸出[78 89 45 56 750]。
// Golang程序?qū)⒅羔槀鬟f給
//數(shù)組作為函數(shù)的參數(shù)
package main
import "fmt"
//定義個(gè)函數(shù)
func updatearray(funarr *[5]int) {
// 使用索引值更改數(shù)組
(*funarr)[4] = 750
//您也可以編寫
//上面的代碼行
// funarr[4] = 750
}
func main() {
//獲取指向數(shù)組的指針
arr := [5]int{78, 89, 45, 56, 14}
//將指針傳遞給數(shù)組
//并執(zhí)行updatearray
updatearray(&arr)
//更新后的數(shù)組
fmt.Println(arr)
}輸出:
[78 89 45 56 750]
注意:在Golang中,不建議使用指向數(shù)組的指針作為函數(shù)的參數(shù),因?yàn)榇a變得難以閱讀。同樣,它也不是實(shí)現(xiàn)此功能的好方法。為此,您可以使用slice而不是傳遞指針。
// Golang程式來說明
//使用切片作為函數(shù)的參數(shù)
package main
import "fmt"
func updateslice(funarr []int) {
//更新值
//在指定的索引處
funarr[4] = 750
}
func main() {
//定義一個(gè)切片
s := [5]int{78, 89, 45, 56, 14}
//將切片傳遞到
//函數(shù)updateslice
updateslice(s[:])
//顯示結(jié)果
fmt.Println(s)
}輸出:
[78 89 45 56 750]