將指標傳遞給函數允許修改它們引用的值。但是,需要了解指標的內部工作原理才能正確執行此操作。
要修改指標指向的值,必須取消引用指標。在 Go 中,星號運算子 (*) 用於此目的。透過取消引用指針,您可以存取它指向的基礎值。
主要區別在於更改指標的值和更改其值之間指向.為指標變數分配新值只會更改它儲存的位址。例如,下面的程式碼片段不會修改指向的值:
func f(p *Test) {
p = &Test{4}
}
要修改指向的值,需要使用解引用運算子。這可以顯式或隱式完成。
明確解除引用:
func f(p *Test) {
*p = Test{4}
}
隱含取消引用:
func f(p *Test) {
p.Value = 4
}
在這兩種情況下,p 所指向的值都會改變。
將指標傳遞給指標(*測試)允許修改主函數中儲存的指標值。但是,它不會改變原始指標指向的值。
func f(p **Test) {
*p = &Test{4}
}
總之,在將指標傳遞給函數時,了解修改指標的值和修改其指向的值之間的區別至關重要。取消引用指針對於執行後一個操作至關重要,從而可以修改基礎資料值。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3