在go语言中处理结构的私有部分示例代码
在go语言中变量/标识符名称以小写字母开头,就是将变量/标识符变成了私有类型了。
如果你需要在结构中使用私有变量,那么操作私有变量的方法是将方法与之关联。
示例场景:
中电子邮件变量是Person结构中的私有类型,SetEmail()和Email()方法是专门用来处理电子邮件变量的。
代码示例:
package main
import "fmt"
import "encoding/json"
type Person struct {
Name string //第一个字母大写是公共的,而小写是私人的。
email string
Gender string
Age int
}
func (p *Person) SetEmail(email string) {
p.email = email
}
func (p Person) Email() string {
return p.email
}
var v = []byte(`[
{
"name": "htz",
"email": "[email protected]",
"gender": "Male",
"age": 27
},
{
"name": "htz1",
"email": "[email protected]",
"gender": "Female",
"age": 31
}
]`)
func main() {
var people []Person
err := json.Unmarshal(v, &people)
if err != nil {
}
//电子邮件不会被显示,因为它是私人的。
fmt.Println(people)
//通过SetEmail方法将数据设置为私有变量
people[0].SetEmail("[email protected]")
people[1].SetEmail("[email protected]")
//通过Email方法从私有变量中获取数据
fmt.Println(people[0].Email())
fmt.Println(people[1].Email())
}
输出:
[{htz Male 27} {htz1 Female 31}]
[email protected]
[email protected]
相关文章