Golang 如何比较分配给数据字段不同值的结构体

Golang 如何比较分配给数据字段不同值的结构体

一个结构体(Structure)是在Golang中的用户定义类型,它包含了一组命名的字段/属性,通过结合一个或多个类型来创建自己的数据类型。同时,这个概念通常与面向对象编程中的类进行比较。一个结构体具有相同或不同数据类型的不同字段,并且通过组成一组唯一字段进行声明。

定义结构体类型: 结构体的声明从关键字 type 开始,然后定义新结构体的名称,接着关键字 struct。然后使用花括号定义一系列数据字段,每个字段具有名称和类型。

语法:

type StructName struct {
    field1 fieldType1
    field2 fieldType2
}

例子:

// 创建结构体
type Employee struct {
    firstName string
        lastName string
            salary int
                age int
} 

下面的示例用于说明:可以使用比较运算符比较相同类型的结构体。

例子 1:

// Golang代码演示,说明结构体的比较概念
// 使用 == 运算符
package main
  
import "fmt"
  
// 创建结构体
type Employee struct {
    FirstName, LastName string
    Salary              int
    Age                 int
}
  
// 主函数
func main() {
  
    // 创建 Employee 结构体的变量
    A1 := Employee{
        FirstName: "Seema",
        LastName:  "Singh",
        Salary:    20000,
        Age:       23,
    }
  
    A2 := Employee{
        FirstName: "Seema",
        LastName:  "Singh",
        Salary:    20000,
        Age:       23,
    }
  
    // 使用 == 运算符,检查 A1 是否等于 A2 
    if A1 == A2 {
  
        fmt.Println("A1 等于 A2")
  
    } else {
  
        fmt.Println("A1 不等于 A2")
    }
} 

输出:

A1 等于 A2

例子 2:

// Golang代码演示,说明结构体的比较概念
// 使用不同分配的值
package main
  
import "fmt"
  
// 创建结构体
type triangle struct {
    side1 float64
    side2 float64
    side3 float64
    color string
}
  
// 主函数
func main() {
  
    // 创建 Triangle 结构体的变量
    var tri1 = triangle{10, 20, 30, "Green"}
    tri2 := triangle{side1: 20, side2: 10,
                  side3: 10, color: "Red"}
  
    // 使用 == 运算符,检查 tri1 是否等于 tri2 
    if tri1 == tri2 {
        fmt.Println("True")
    } else {
        fmt.Println("False")
    }
  
    // 使用 == 运算符,检查 tri3 是否等于 tri4
    tri3 := new(triangle)
    var tri4 = ▵{}
  
    if tri3 == tri4 {
        fmt.Println("True")
    } else {
        fmt.Println("False")
    }
} 

输出:

False
False

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程