在go语言中处理结构的私有部分示例代码

2023-06-01 00:00:00 语言 示例 私有

在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]

相关文章