登录
首页 >  Golang >  Go问答

使用reflect访问golang中包的私有字段

来源:stackoverflow

时间:2024-04-13 23:15:34 173浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《使用reflect访问golang中包的私有字段》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

我正在为 golang 中的包编写单元测试。我需要创建一个私有字段类型的变量,该变量驻留在不同的包中,以将其作为参数传递给我正在测试的函数。

包:go/abc/a.go

type newtype int

包:go/edf/b.go

import "go/abc"

func init(abc newtype){
  // ommitted for brevity 
}

现在我正在为 b.go 编写单元测试

包:go/edf/b_test.go

func TestInit(){
// Now I need to create a variable of private field type newType in abc package
// for passing as parameter to the init function....   
}

是否可以使用golang中的reflectpackages包来实现这一点


正确答案


我需要访问包中的私有字段

你不能这样做。不导出(您所说的私有)的唯一目的是无法从外部访问。

到这里,我们也就讲完了《使用reflect访问golang中包的私有字段》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

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