struct

标准用法:

type person struct
{
	name string
	age int
}

例如:

package main
import "fmt"

type Person struct{
    name string
    age int
    weight int
}

func main(){
    person := Person{"zhangsan",25}
    fmt.Printf("%v", person)
}

输出:

{zhangsan,25}

struct的匿名字段

type Human struct
{
	name string
	age int
	weight int
}

type Student struct
{
	Human     //匿名字段,默认Student包含了Human的所有字段
	speciality string
}

jane := Student{Human:Human{"Jane",35,100},speciality:"Biology"}   //初始化

student 默认包含了 human 字段,类似于继承

package main

import (
	"fmt"
)

type Person struct {
	name string
	age  int
}

type Student struct {
	Person
	age        int               //可以重写age
	speciality string
}

func main() {
	student := Student{Person{"zhangsan", 25}, 30, "maths"}  //先对person初始化
    fmt.Println(student)
    fmt.Printf("%v", student.Person.age)
}

输出结果

{{zhangsan 25} 30 maths}
25
进程 已完成,退出代码为 0

注意

Go语言中没有private 、 protected 、 public这样的关键字。

要使某个符号对其他包(package)可见(即可以访问),需要将该符号定义为以大写字母开头。

例如: fmt.Printf()