首頁 >後端開發 >Golang >Go 冒號等於運算子和一個新變量

Go 冒號等於運算子和一個新變量

PHPz
PHPz轉載
2024-02-10 16:57:09538瀏覽

Go 冒号等于运算符和一个新变量

php小編新一在這裡為大家介紹一項新的特性-Go 冒號等於運算子和一個新變數。這個運算子的作用是在Go語言中建立一個新的變量,同時將其初始化為一個表達式的值。這個特性的引進使得程式碼更加簡潔易讀,同時也減少了冗餘的程式碼量。透過使用冒號等於運算符,我們可以在宣告變數的同時為其賦值,提高了程式碼的效率和可讀性。在接下來的文章中,我們將詳細介紹這個新功能的用法和注意事項,希望能帶給大家幫助和啟發。

問題內容

這可能不是一個新問題,但我找不到任何地方答案。

使用此程式碼,在循環內的函數呼叫線上,:== 運算子都不起作用。

我有一個用例,我需要在 for 循環之外聲明一次大數組並在函數中更新,然後傳回。但該函數還傳回另一個變量,該變量每次都不同並在該循環內使用。

去遊樂場連結:1

import "fmt"

func someFunc(names []string) (int, []string) {
    foo := 35 // Just for the example
    names = append(names, "Bob")
    return foo, names
}

func main() {

    names := []string{"Fred", "Mary"}

    for i := 0; i < 10; i++ {
        newVariable, names := someFunc(names) // This line is the problem
        fmt.Println(newVariable)
    }

}

如何重構它以使其按預期工作?

解決方法

在 := 之前宣告 newVariable 怎麼樣?

for i := 0; i < 10; i++ {
    var newVariable int
    newVariable, names = someFunc(names)
    fmt.Println(newVariable)
}

以上是Go 冒號等於運算子和一個新變量的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除