登录
首页 >  Golang >  Go问答

为什么在声明变量后需要指定函数的类型参数?

来源:stackoverflow

时间:2024-03-22 11:09:32 348浏览 收藏

在 Go 语言中,为声明变量后指定函数的类型参数是必要的,以明确变量的类型,防止编译器错误。例如,匿名结构在声明时没有指定类型,因此必须在使用前显式定义类型,以设置值或进行其他操作。如果不指定类型,编译器将无法确定变量的类型,导致编译错误。

问题内容

我想使用匿名结构来做某事。

var users []struct{
    name string `json:"name,omitempty"`
    age int
}

我必须再次编写类型来设置值

users = make([]struct{
    Name string `json:"name,omitempty"`
    Age int
}, 0, 10)

如果我坚持使用匿名结构,有什么办法让它更体面吗?

(如果没有,我想知道为什么golang设计会做出这样的功能......)


解决方案


匿名结构对于一次性使用很方便。

如果您多次使用它,请定义一个命名结构类型。

如果您只在单个函数中使用它,则可以在该特定函数的范围内定义类型,因此很明显它不能在其他地方使用:

func myfunc() {
    type MyType struct {
        Name string
    }
    m := MyType{Name: "Hello, World!"} // this type can only be used within this func
    fmt.Println(m)
}

到这里,我们也就讲完了《为什么在声明变量后需要指定函数的类型参数?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>