首頁 > 後端開發 > Golang > 主體

如何在 Go 中使用指標接收器修改簡單類型的值?

Linda Hamilton
發布: 2024-11-19 11:32:02
原創
456 人瀏覽過

How to Modify a Simple Type's Value Using a Pointer Receiver in Go?

Go 中透過指標接收器修改簡單類型的值

透過指標接收器方法修改簡單型別的值可以是Go 中的常見任務。然而,理解指針在這種情況下的行為至關重要。

在提供的範例中:

<br>type FooInt int<p>func (fi *FooInt ) FromString(i 字串) {</p><pre class="brush:php;toolbar:false">num, _ := strconv.Atoi(i)
tmp := FooInt(num)
fi = &tmp
登入後複製

}

當指標作為接收者傳遞時,會在方法內建立該指標的副本。方法內對副本所做的任何修改都不會影響原始指標。

在程式碼片段中,*fi 是傳遞給 FromString 方法的 fi 指標的副本。當您將 &tmp 指派給 *fi 時,您實際上是在變更副本的值,而不是原始 fi 指標。

要修改原始指標的值,您需要:

  • 傳回新的指標值:

    <br> func (fi <em>FooInt) FromString(i string) </em>FooInt {<pre class="brush:php;toolbar:false">  num, _ := strconv.Atoi(i)
      tmp := FooInt(num)
      return &tmp
    登入後複製

    }

  • 將非零指標傳遞給要變更的值:

    <br> func (fi <em>FooInt) FromString(i string, p </em>*FooInt) {<pre class="brush:php;toolbar:false">  num, _ := strconv.Atoi(i)
      tmp := FooInt(num)
      *p = &tmp
    登入後複製

    }

  • 確保受者沒有>

    登入後複製
    func (fi *FooInt) FromString(i string) {

    }
      num, _ := strconv.Atoi(i)
      *fi = FooInt(num)
    登入後複製


  • 透過確保接收者是有效的指標並修改裡面的指向值方法,可以透過指標接收器有效修改原始簡單類型的值。

以上是如何在 Go 中使用指標接收器修改簡單類型的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板