结构体
结构体定义
type {结构体名称} struct{
{字段名} {字段类型}
}// 定义一个名为Person的结构体
type Person struct{
// 定义字符串类型字段Name,
Name string
// 定义整型字段Age
Age int8
}结构体创建
字段可访问性
结构体方法
结构体继承
最后更新于
package main
import (
"fmt"
)
// 定义一个名为Person的结构体
type Person struct {
// 定义字符串类型字段Name,
Name string
// 定义整型字段Age
Age int8
// 定义浮点型字段Height
Height float32
}
func main() {
// 定义一个Person类型的结构体变量,并初始化其中的字段值
var me Person = Person{
Name: "wj",
Age: 26,
}
// 修改结构体变量中的字段值
me.Height = 1.78
// 获取并输出结构体变量中的字段值
fmt.Println(me.Name)
fmt.Println(me.Age)
fmt.Println(me.Height)
}wj
26
1.78// 定义一个名为Person的结构体
type Person struct{
// 定义字符串类型字段Name,
Name string
// 定义整型字段Age
Age int8
// 定义浮点型私有字段weight
weight float32
}package main
import (
"fmt"
)
// 定义一个名为Person的结构体
type Person struct {
// 定义字符串类型字段Name,
Name string
// 定义整型字段Age
Age int8
// 定义私有浮点型字段weight
weight float32
}
func (p Person) Introduce() {
// 通过结构体方法访问私有字段
fmt.Printf("My name is %s,weight %f", p.Name, p.weight)
}
func main() {
// 定义一个Person类型的结构体变量,并初始化其中的字段值
var p1 Person = Person{
Name: "tony",
Age: 32,
weight: 147.8,
}
// 调用结构体方法
p1.Introduce()
}My name is tony,weight 147.800003package main
import (
"fmt"
)
// 定义一个名为Person的结构体
type Person struct {
// 定义字符串类型字段Name,
Name string
// 定义整型字段Age
Age int8
// 定义私有浮点型字段weight
weight float32
}
func (p *Person) ChangeName(newName string) {
p.Name = newName
}
func main() {
// 定义一个Person类型的结构体指针,并初始化其中的字段值
var p1 *Person = &Person{
Name: "tony",
Age: 32,
weight: 147.8,
}
fmt.Println(p1.Name)
// 通过结构体指针方法修改结构体中的值
p1.ChangeName("mike")
fmt.Println(p1.Name)
}tony
mikepackage main
import (
"fmt"
)
// 定义结构体类型Ship
type Ship struct{}
// 为结构体类型Ship定义方法Ship()
func (b Ship) Sail() {
fmt.Println("sailing the ship")
}
// 定义结构体类型Battleship
type Battleship struct {
// 继承Ship
Ship
}
func main() {
// 定义Ship类型的变量s1
var s1 Ship
// 定义Battleship类型的变量s2
var s2 Battleship
// 直接调用s1的方法
s1.Sail()
// 通过语法糖隐式调用继承方法
s2.Sail()
// 显式调用继承方法
s2.Ship.Sail()
}sailing the ship
sailing the ship
sailing the ship