Golang 如何打印结构体变量数据

结构体(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