首頁 > 後端開發 > Golang > 為什麼 Go 的類型推斷對於短變數宣告中的結構體欄位會失敗?

為什麼 Go 的類型推斷對於短變數宣告中的結構體欄位會失敗?

Patricia Arquette
發布: 2025-01-03 17:36:43
原創
700 人瀏覽過

Why Does Go's Type Inference Fail for Struct Fields in Short Variable Declarations?

結構體賦值中的Go 型別推斷歧義

考慮以下Go 程式碼片段:

i := 10
next := 11
prev, i := i, next
登入後複製

在此片段中, i 的型別在賦值期間成功推斷為int。但是,當類似的程式碼片段涉及結構體欄位時,類型推斷會失敗,如下所示:

type Foo struct {
    Bar int
}

f := Foo{10}
next := 11
prev, f.Bar := f.Bar, next
登入後複製

在後一個程式碼片段中,f.Bar 的類型推斷失敗,並顯示錯誤訊息「non-name」 f.Bar on left side of :=".

為了解釋這個行為,我們轉向Go中的相關問題tracker:

Github Issue 6842

Issue 6842(「規格:使用短聲明符號指派給欄位」)將此行為記錄為一個未解決的問題。賦值語法的歧義。中的變數名稱還是欄位名稱。知問題。

以上是為什麼 Go 的類型推斷對於短變數宣告中的結構體欄位會失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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