Я заметил два стиля инициализации переменной типа структуры в примерах кода Go, но не понимаю, когда их использовать.
Стиль 1:
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