首頁  >  文章  >  後端開發  >  為什麼 Go 會給出「err Declared and Notused」錯誤?

為什麼 Go 會給出「err Declared and Notused」錯誤?

Linda Hamilton
Linda Hamilton原創
2024-11-19 15:31:02714瀏覽

Why Does Go Give an

Go 中未使用的變數

在 Go 程式設計中,使用宣告的變數是至關重要的。如果您宣告的變數在程式碼範圍內未使用,則可能會出現編譯錯誤「宣告錯誤但未使用」。此錯誤並不表示任何陰影問題。

在給定的程式碼片段中:

package main

import (
    "fmt"
)

func main() {
    var (
        err error
        dto = make(map[string]interface{})
    )

    dto[`thing`], err = getThings()
    fmt.Println(dto[`thing`])
}

func getThings() (string, error) {
    return `the thing`, nil
}

由於未使用 err 變數而發生錯誤。儘管已聲明,但它僅在呼叫 getThings() 期間分配了一個值,並沒有進一步使用。

根據 Go 的常見問題解答,「未使用的變數的存在可能表示存在錯誤。」未使用的變數會減慢編譯和建置時間。因此,Go 需要利用所有宣告的變數。

要解決錯誤,請刪除err 變數宣告或將其分配給_:

package main

import (
    "fmt"
)

func main() {
    var (
        _ error
        dto = make(map[string]interface{})
    )

    dto[`thing`], _ = getThings()
    fmt.Println(dto[`thing`])
}

func getThings() (string, error) {
    return `the thing`, nil
}

或者,利用err 進行錯誤檢查:

package main

import (
    "fmt"
)

func main() {
    var (
        err error
        dto = make(map[string]interface{})
    )

    dto[`thing`], err = getThings()
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(dto[`thing`])
}

func getThings() (string, error) {
    return `the thing`, nil
}

雖然允許有未使用的全域變數或函數參數,但必須利用函數作用域內宣告的變數來避免編譯時錯誤。

以上是為什麼 Go 會給出「err Declared and Notused」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn