Go语言if语句判断map key是否存在的简洁方式

选中文字可对指定文章内容进行评论啦,绿色背景文字可以点击查看评论额。

直接上示例,简洁的写法:

if val, exists:= map["key"]; exists{
    //此处为key存在的业务代码
}

Map

在Go语言里,获取Map某个key的值,map['key']会返回key对应的值和key是否存在的布尔值。

var val int
var exists bool
val, exists = map["key"]

If

在Go语言里,if语句是可以包含条件语句和初始化语句。在上面示例中即同时使用了这两种语句的声明:

val,exists: dict['key']:此语句为初始化语句,使用map['key']返回值对val和exists做初始化。

分号后的exists:此为条件语句,判断map里是否存在指定的“key”。

总结

在Go语言里,结合Map和If语句的语法特性,就可以很简单在一个语句里完成map的key是否存在的判断。

需要注意的是,示例中的val,exists是局部变量,它们的作用域是if代码块级。

 

版权声明:著作权归作者所有。

相关推荐

Python判断文件是否存在的方法

方法一使用os.path.exists判断路径是否存在,包括文件夹和文件。import os.path os.path.exists(my_file) 方法二使用os.path.isfile检查路径是否为文件,如果文件存在返回True。import os.path os.path.isfile(my_file)  方法三面向对象文件系统路径操作包pathlib2,pa

Kotlin:流程控制之条件语句 if 和 when

在Kotlin有两种用于判断条件的语句if 和when。if在Kotlin,if既可以是条件语句,仅仅用作条件判断,还可以是条件表达式,表达式会返回一个值。传统的条件判断if语句var max = a  if (a < b) max = b if-elsevar max:&

Freemarker判断列表是否为空

freemarker判断列表是否为空:判断列表对象是否为null判断列表里是否没有元素使用??判断对象是否为null<#if dataList??>使用?size获取列表元素数,判断是否为空列表<#if dataList?? && (dataList?size > 0)>示例<#if&n

Java判断LocalTime是否在午夜

判断LocalTime是否在午夜,可以判断时间是否在23:59和00:01之间。代码如下:private final LocalTime ONE_MINUTE_BEFORE_MIDNIGHT = LocalTime.of(23, 59, 0); private final LocalTime ONE

Go语言日志框架logrus封装

logrus在github上是一个star数比较高的go日志框架,简单封装如下:package log import ( "fmt" "github.com/Sirupsen/logrus" "runtime" "strings" ) var logger = logrus.New() // 封装logrus.Fields type Fields logrus.Fields func SetLog

MongoDB判断数组是否为空的几种方法

记录下MongoDB用于判断数组是否为空的语句。方法一:{"field1.0":{$exists: true}} (推荐)db.testcollection.find({"field1.0":{$exists: true}})方法二:$elemMatch:{$ne:null}db.testcollection.find({"field1":{$elemMatch:{$ne:null}}})方法三:

Go语言把map接口转换为google.protobuf.Struct

以下是go语言把map[string]interface{}转换为google.protobuf.Struct:package pbimport ( "fmt" "reflect" st "github.com/golang/protobuf/ptypes/struct")// ToStruct转换map[string]interface{} 为ptypes.Structfunc ToStruct

Java使用Map.computeIfAbsent()方法简化初始不存在的key

我们在开发过程中,经常会遇到值为Map的Map。这种情况下我们需要先把key的值取出来,然后判断是否为null。如果值为null,则初始化值并把它存放进Map。示例代码:String childKey="2020-01"; User user = new User(); Map<String,Map<String,User>> parentMap = new HashMap

Go语言:变量的作用域(本地和全局变量)

变量声明的位置Go语言变量声明的位置有三种级别:包(package)级别:变量在函数外声明函数级别:变量在函数内,包括函数的传参参数变量,但在代码块外声明块级别:这个分两种,一种是显式,会使用大括号{}括起来的代码;另一种是隐式,如for,if后的初始化表达式。变量位置示例package main import "fmt" var test = "test" //在函数外,包级别变量 fu