为了账号安全,请及时绑定邮箱和手机立即绑定

比较两个slice、struct或者map是否相等

标签:
iOS

我们可以直接使用reflect.DeepEqual来比较两个slice、struct或者map是否相等

package main

import (    "fmt"
    "reflect")

type A struct {
    s string}

func main() {

    a1 := A{s: "abc"}
    a2 := A{s: "abc"}   
     if reflect.DeepEqual(a1, a2) {
        fmt.Println(a1, "==", a2)
    }

    b1 := []int{1, 2}
    b2 := []int{1, 2}    
    if reflect.DeepEqual(b1, b2) {
        fmt.Println(b1, "==", b2)
    }

    c1 := map[string]int{"a": 1, "b": 2}
    c2 := map[string]int{"a": 1, "b": 2}    
    if reflect.DeepEqual(c1, c2) {
        fmt.Println(c1, "==", c2)
    }
}

对于slice,我们还可以使用另外一种方法:

func stringSliceEqualBCE(a, b []string) bool {    
if len(a) != len(b) {       
 return false
    }    
    if (a == nil) != (b == nil) {        
    return false
    }

    b = b[:len(a)]    
    for i, v := range a {       
     if v != b[i] {           
      return false
        }
    }    return true}

还在找我的道

作者:timliudream

原文链接:https://www.cnblogs.com/TimLiuDream/p/10124120.html


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消