结构体(Structure)是Golang中的用户定义类型,包含一组命名字段/属性,通过组合一个或多个类型创建自己的数据类型。此概念通常与面向对象编程中的类进行比较。结构体具有不同类型的相同或不同数据字段,并通过组合固定集合的唯一字段进行声明。
语法:
type StructName struct {
field1 fieldType1
field2 fieldType2
}
结构体变量:
variable_name := structure_variable_type {value1, value2...valuen}
在Golang中有两种方法可以打印结构体变量。第一种方法是使用fmt包的Printf函数,并使用参数的特殊标记作为打印格式参数。其中一些参数如下所示:
%v 默认格式的值
%+v 加号标志添加字段名称
%#v 值的Go语法表示
示例1:
// Golang程序,打印结构体变量数据
package main
import (
"fmt"
)
// 创建一个结构体
type Employee struct {
Name string
Age int
Salary int
}
// 主函数
func main() {
// 创建变量
// 由Employee结构体创建变量
var e Employee
e.Name = "Simran"
e.Age = 23
e.Salary = 30000
// 打印变量名称,值和类型
fmt.Printf("%s\n", e.Name)
fmt.Printf("%d\n", e.Age)
fmt.Printf("%d\n", e.Salary)
fmt.Printf("%#v\n", e)
}
输出:
Simran
23
30000
main.Employee{Name:"Simran", Age:23, Salary:30000}
示例2:
// Golang程序,打印结构体变量数据
package main
import "fmt"
type Mobiles struct {
company string
price int
mobile_id int
}
func main() {
// 声明Mobile1为Mobile类型
var Mobile1 Mobiles
// 声明Mobile2为Mobile类型
var Mobile2 Mobiles
// Mobile 1的规格
Mobile1.company = "Vivo"
Mobile1.price = 20000
Mobile1.mobile_id = 1695206
// Mobile 2的规格
Mobile2.company = "Motorola"
Mobile2.price = 25000
Mobile2.mobile_id = 2625215
// 打印Mobile1的信息
fmt.Printf("Mobile 1 公司名称 : %s\n", Mobile1.company)
fmt.Printf("Mobile 1 价格 : %d\n", Mobile1.price)
fmt.Printf("Mobile 1 手机编号 : %d\n", Mobile1.mobile_id)
// 打印Mobile2的信息
fmt.Printf("Mobile 2 公司名称 : %s\n", Mobile2.company)
fmt.Printf("Mobile 2 价格 : %d\n", Mobile2.price)
fmt.Printf("Mobile 2 手机编号 : %d\n", Mobile2.mobile_id)
}
输出:
Mobile 1 公司名称 : Vivo
Mobile 1 价格 : 20000
Mobile 1 手机编号 : 1695206
Mobile 2 公司名称 : Motorola
Mobile 2 价格 : 25000
Mobile 2 手机编号 : 2625215