如何在 Golang 中比較 slice、struct 和 map?
Go 中的 reflect 包提供了一個非常重要的函式,稱為 DeepEqual(),可用於比較複合型別。當我們要檢查兩個資料型別是否“深度相等”時,將使用 DeepEqual() 函式。
比較 slice
示例 1
考慮下面所示的程式碼
package main
import (
"fmt"
"reflect"
)
func main() {
sl := []int{1, 2, 3}
sl1 := []int{1, 2, 3}
fmt.Println(reflect.DeepEqual(sl, sl1))
}輸出
如果我們在上述程式碼上執行命令 go run main.go,那麼我們將在終端中獲得以下輸出。
true
比較 map
示例 2
考慮下面所示的程式碼。
package main
import (
"fmt"
"reflect"
)
func main() {
m1 := make(map[string]int)
m1["rahul"] = 10
m1["mukul"] = 11
m2 := make(map[string]int)
m2["rahul"] = 10
m2["mukul"] = 11
fmt.Println(reflect.DeepEqual(m1, m2))
}輸出
如果我們在上述程式碼上執行命令 go run main.go,那麼我們將在終端中獲得以下輸出。
true
比較 struct
示例 3
考慮下面所示的程式碼。
package main
import (
"fmt"
"reflect"
)
type Person struct {
name string
age int
}
func main() {
p1 := Person{name: "TutorialsPoint", age: 10}
p2 := Person{name: "TutorialsPoint", age: 10}
fmt.Println(reflect.DeepEqual(p1, p2))
}輸出
如果我們在上述程式碼上執行命令 go run main.go,那麼我們將在終端中獲得以下輸出。
true
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP