网络编程
位置:首页>> 网络编程>> Go语言>> go 判断两个 slice/struct/map 是否相等的实例

go 判断两个 slice/struct/map 是否相等的实例

作者:地质队炼丹师  发布时间:2023-07-24 03:42:19 

标签:go,slice,struct,map

可以通过 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)
}
}

补充:go语言判断 slice,array,map中是否存在某个元素

最近在用go重构以前python写的项目。遇到一些问题,总结一下。自己水平比较菜,遇到问题较低级,自己总结一下,免得忘了

很简单的需求,判断某个元素是否在 slice,array ,map中 。其实很简单。但是还是python最简单啊。。。。。。。


func Contain(obj interface{}, target interface{}) (bool, error) {
targetValue := reflect.ValueOf(target)
switch reflect.TypeOf(target).Kind() {
case reflect.Slice, reflect.Array:
for i := 0; i < targetValue.Len(); i++ {
if targetValue.Index(i).Interface() == obj {
return true, nil
}
}
case reflect.Map:
if targetValue.MapIndex(reflect.ValueOf(obj)).IsValid() {
return true, nil
}
}
return false, errors.New("not in array")
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持

来源:https://blog.csdn.net/qq_28612967/article/details/98633126

0
投稿

猜你喜欢

  • 下面这段代码是兼容IE的图片切换代码,请问各位老鸟如何兼容FF,或者有相类似无按钮无数字兼容FF的图片切换代码?<!DOCTYPE h
  • 1.环境设置1.1gradio安装需要安装 gradio,安装办法就是 pip install gradio2.ffmpeg安装再次需要加入
  • 简单asp加载access数据库,并生成XML,然后再将XML数据加载进LIST组件范例学习。演示:http://www.taoshaw.c
  • 和以往的总监会议一样,在某个新功能的总监级别讨论会上,很多人再次又说出了同样的看法:“我们网站的界面设计太烂了,不好看、不好用、而且很乱”。
  • asp防止用户同时登陆的方法,实现这个功能可有两种方式:1.使用application用application对象:如果做的是大型社区,可能
  • 如何在ADO中使用SQL函数?代码见下:<%Set conn1 = Server.CreateObjec
  • php操作xml最近计划写个人的小网站,一系列原因选择了用php来写,最大的问题就是虽然php很流行,但我从来没有接触过php,看了一个多星
  • 相对于Firefox2来说,Firefox3除了采用全新的Gecko 1.9引擎外,在性能、稳定性和安全性方面进行许多改进,在我们最关心的对
  • interfaceGo语言里面设计最精妙的应该算interface,它让面向对象,内容组织实现非常的方便,当你看完这一章,你就会被inter
  • 数据库,网站运营的基础,网站生存的要素,不管是个人用户还是企业用户都非常依赖网站数据库的支持,然而很多别有用心的攻击者也同样非常&l
  • 随着网页技术的发展,网络视觉设计与之前以程序员为主导的审美特征相比,具有了极大的改观。同时,随着美术、音乐、舞蹈人才的加入,网络开始在这一社
  • SQL语言是一门简单易学却又功能强大的语言,它能让你快速上手并写出比较复杂的查询语句。但对于大多数开发者来说,使用SQL查询数据库并没有一个
  • 问题背景:日常对Sql Server 2005关系数据库进行操作时,有时对数据库(如:Sharepoint网站配置数据库名Sharepoin
  • MYSQL数据库安装完成后,默认最大连接数是100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,增加默认MYSQL连接数的方法有两
  • 本文实例讲述了PHP的HTTP客户端Guzzle简单使用方法。分享给大家供大家参考,具体如下:首先来一段官方文档对Guzzle的介绍:然后c
  • 代码如下:<%@LANGUAGE="VBSCRIPT"%> <% option&n
  • 系列一:图片格式介绍Gif格式特点透明性Gif是一种布尔透明类型,既它可以是全透明,也可以是全不透明,但是它并没有半透明(alpha 透明)
  • 学了几天正则,差不多该总结整理写成果了,之前就想写语法高亮匹配来着,不过水平不够,看着例子都不理解。那么我们来分析下两位大神 次碳酸钴 和
  • 本人非计算机,亦非心理学,或者交互设计,更非设计专业出身,因此什么都是半桶水。即使如此,依然靠着兴趣寻找乐趣。对于设计,爱之,但没有受过系统
  • 通配符:通配符描述示例%包含零个或更多字符的任意字符串。WHERE title LIKE '%computer%' 将查找处
手机版 网络编程 asp之家 www.aspxhome.com