Golang中私有变量的使用
2023-12-22 18:55:55
在Go语言中,如果结构体中的变量是私有的(即小写字母开头),那么它们只能通过结构体的实例进行访问和修改。如果你想给结构体赋值,你需要先创建一个结构体的实例,然后通过该实例来访问和修改结构体的私有变量
示例代码:
package main
import (
"fmt"
)
// BaseFilter结构体定义了3个私有变量
type BaseFilter struct {
bodyRaw interface{}
query string
logID string
}
// ANNFilter结构体定义了1个公有变量
type ANNFilter struct {
BaseFilter
}
// 创建实例
func NewANNFilter() *ANNFilter {
return &ANNFilter{
BaseFilter: BaseFilter{},
}
}
func (bf *BaseFilter) ParseRequest(name string) error {
// 通过实例方法设置私有变量的值
bf.query = "hello world"
fmt.Println(name)
fmt.Println(bf.query)
return nil
}
func (anf *ANNFilter) Process() error {
// ANNFilter可以使用它公有变量的共有方法
anf.ParseRequest("ANNFilter")
return nil
}
func main() {
anf := NewANNFilter()
anf.Process()
anf.ParseRequest("BaseFilter")
}
输出结果
[work@aaa xxx]$ go run test.go
/home/work/.deck/1.0/go/1.21/bin/go run test.go
ANNFilter
hello world
BaseFilter
hello world
文章来源:https://blog.csdn.net/sinat_34241861/article/details/135069552
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!