將指標傳遞給函數允許修改它們所引用的值。但是,需要了解指標的內部工作原理才能正確執行此操作。
要修改指標指向的值,必須取消引用指標。在 Go 中,星號運算子 (*) 用於此目的。透過取消引用指針,您可以存取它指向的基礎值。
關鍵區別在於更改指標的值和更改其值之間指向.為指標變數分配新值只會更改它儲存的位址。例如,下面的程式碼片段不會修改指向的值:
<code class="go">func f(p *Test) { p = &Test{4} }</code>
要修改指向的值,需要使用解引用運算子。這可以顯式或隱式完成。
明確解除引用:
<code class="go">func f(p *Test) { *p = Test{4} }</code>
隱式解除引用:
<code class="go">func f(p *Test) { p.Value = 4 }</code>在這兩種情況下,p 指向的值都會變更。 指標到指標修改將指標傳遞給指標(*測試)允許修改儲存在主函數中的指標值。但是,它不會改變原始指標指向的值。
<code class="go">func f(p **Test) { *p = &Test{4} }</code>綜上所述,在向函數傳遞指標時,了解修改指標的值和修改它的值之間的區別至關重要指向.取消引用指針對於執行後一個操作至關重要,從而可以修改基礎資料值。
以上是如何修改 Go 中指標取消引用的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!