本文主要为Go语言 结构体介绍、语法、使用注意及其示例。
目录
结构体
C语言里面,我们可以使用typedef in MyInt。
在go语言中使用结构体来模拟类,使用type + struct类处理。
语法
语法示例
type structName struct{
fieldName typeName
...
...
}
语法说明
type和struct是Go 语言的关键字
二者组合就代表要定义一个新的结构体类型
structName 是结构体类型的名字
fieldName 是结构体的字段名,而tpeName是对应的字段类型
字段可以是零个、一个或者多个
声明使用
var s1 Student
采用简短声明法
s1 := Student{"张三", 20, "男", 100}
创建并赋值
创建学生信息的结构体并赋值。
示例如下:
package main
import "fmt"
// c语言里面,我们可以使用typedef int MyInt
type MyInt int // type相当于typedef
type Student struct {
name string
age int
gender string
score float64
}
func main() {
var i, j MyInt
j, j = 10, 20
fmt.Println("i+j=", i+j)
lilei := Student{
name: "lilei",
age: 20,
gender: "男",
score: 100, // 最后一个元素后面必须加上逗号,如果不加上逗号则必须与}同一行
}
// 使用结构体各个字段
fmt.Println("lilei:", lilei.name, lilei.age, lilei.gender, lilei.score)
}
使用指针
示例如下:
s1 := &lilei
fmt.Println("lilei 使用指针s1.name打印:", s1.name, s1.age, s1.gender, s1.score)
fmt.Println("lilei 使用指针(*s1).name:", (*s1).name, (*s1).age, (*s1).gender, (*s1).score)
使用注意
使用结构体变量 需要注意:
再定义期间对结构体赋值时,如果每个字段都赋值了,那么字段的名字可以省略不写。
如果只对局部变量赋值,那么必须明确指定变量名字。
示例如下:
sunN := Student{
"sunnan",
18,
"男",
99,
}
fmt.Println(sunN)
sunZ := Student{
name: "sunzhen",
age: 25,
}
fmt.Println(sunZ)
总结
本文主要为Go语言 结构体介绍、语法、使用注意及其示例。