gpt4 book ai didi

Go变量初始化语法

转载 作者:IT王子 更新时间:2023-10-29 01:37:44 24 4
gpt4 key购买 nike

我注意到在 Go 代码示例中有两种初始化结构类型变量的方式,但我不明白何时使用它们。

样式一:

package main

import (
"fmt"
)

type Msg struct {
value string
}

func NewMsg(value string) (Msg) {
return Msg{value}
}

func main() {
fmt.Println("Hello, playground")

var helloMsg Msg
helloMsg = NewMsg("oi")

fmt.Println("Hello, ", helloMsg.value)
}

样式 2:

package main

import (
"fmt"
)

type Msg struct {
value string
}

func NewMsg(value string) (Msg) {
return Msg{value}
}

func main() {
fmt.Println("Hello, playground")

var helloMsg Msg
{
helloMsg = NewMsg("oi")
}

fmt.Println("Hello, ", helloMsg.value)
}

第一种风格是简单的变量初始化,但第二种风格对我来说更晦涩。花括号有什么作用?为什么要使用第二种形式?

编辑:

有关该问题的更多上下文,它来自 Go Kit 库的示例代码:https://github.com/go-kit/kit/blob/master/examples/profilesvc/cmd/profilesvc/main.go

最佳答案

What the curly braces do?

它们表示一个代码块。当您想要限制标识符的范围(到该 block )时,您可以使用代码块。实际上,它在这里没有意义,因为您只有一个标识符,而且它来自外部范围。

一些阅读:

关于Go变量初始化语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54459877/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com