首页 > 其他分享 >golang —— 类型断言的妙用

golang —— 类型断言的妙用

时间:2023-04-30 10:00:22浏览次数:35  
标签:case 妙用 断言 golang switch type 码农

最近写代码的时候发现编译器老是会给 switch v.(type) 一个简化提醒 could eliminate type assertions in switch cases,于是尝试根据提醒优化了一下:

	switch v := v.(type) {
	case int:
		m[k] = v * 2
	case string:
		m[k] = goStrings.Repeat(v, 2)
	default:
	}

最后发现居然在获取类型的时候会自动转掉,不得不说很贴心了 QAQ,果然码农最懂码农需要什么

标签:case,妙用,断言,golang,switch,type,码农
From: https://www.cnblogs.com/Constantin/p/17364938.html

相关文章

  • golang原生实现JWT
    golang原生实现JWTJWT(JSONWebToken)是一种基于JSON的安全令牌,可以用于在不同系统之间传输认证信息。在Go中实现JWT验证,可以通过标准库crypto/hmac、crypto/sha256和encoding/base64来编写自己的JWT。获取Token我们在此封装一个JWT的struct结构体(由于除了Payload,其他很大可能......
  • golang —— 实现接口的结构体调用方式
    在接口上调用方法时,必须有和方法定义时相同的接收者类型或者是可以根据具体类型P直接辨识的:指针方法可以通过指针调用值方法可以通过值调用接收者是值的方法可以通过指针调用,因为指针会首先被解引用接收者是指针的方法不可以通过值调用,因为存储在接口中的值没有地址将一个......
  • Golang GMP原理(1)
    GolangGMP原理(1)概念梳理线程线程一般指内核级线程,核心如下:操作系统的最小调度单元创建销毁调度由内核完成,cpu要完成内核态与用户态的转换可充分利用多核,实现并行协程协程线程对应协程,又称为用户级线程,核心点如下:与线程存在映射关系,为M:1创建、销毁、调度在用户......
  • golang常用的http请求操作
    之前用python写各种网络请求的时候写的非常顺手,但是当打算用golang写的时候才发现相对来说还是python的那种方式用的更加顺手,习惯golang的用法之后也就差别不大了,下面主要整理了常用的通过golang发起的GET请求以及POST请求的代码例子golang发起GET请求基本的GET请求//基本的GE......
  • Golang每日一库之bcrypt
    本文官方文档:https://pkg.go.dev/golang.org/x/crypto/bcrypt前言之前讲过JWTTokenhttps://www.cnblogs.com/zichliang/p/17303759.htmlJWT呢是信息是经过数字签名的,因此可以被验证和信任。然后今天就来说说密码学,我们在做鉴权做用户处理时会把密码存储到数据库中,但是......
  • 在Golang中使用Testify mock框架
    1.前言2.实现代码3.Mock和测试4.Mock无参方法5.Mock带参数的方法6.Mock带参数的方法,但是参数具体内容非测试重点7.Mock带参数的方法,并校验实际参数8.Mockery9.参考1.前言我使用golang已经有一段时间了,但直到最近我才终于明白如何在golang测试中进行对象......
  • Golang单元测试
    1.前言2.先决条件3.创建单元测试的示例程序4.创建单元测试5.使用gotest运行测试6.Table-driven的单元测试7.测试覆盖率8.Go基准测试9.为代码写示例10.总结11.参考文档1.前言原文:HowToWriteUnitTestsinGoAuthor:TobiBalogun译者:philoenglis......
  • golang1.6版本json包解析嵌套指针的问题小记
    指针的指针问题本地跑的好好的,测试环境跑的好好,预发布环境(准线上环境),跪了。起因就是:1a:=&struct{s:""}2json.Unmarshal([]byte{},&a)3fmt.Println(a.s)//报错行第一行代码进行&取地址,获得指针变量。第二行代码,进行json解析的时候,传入了&a, 指针的指针,a到了jso......
  • Golang 并发&同步的详细原理和使用技巧
    Golang并发概要说明并发模型Golang的并发模型属于一种很典型的CSP(communicatingsequentialprocesses)并发模型,其核心是不要通过共享内存来通信,而应该通过通信来共享内存。具体实现,就是通过goroutine来实现并发,然后并发的goroutine之间通过Channel来进行通信;为此,Gola......
  • Golang - 5 Golang的流程控制:if/else、for、switch
    5流程控制目录5流程控制1if/else1.1语法2for2.1语法2.2简单写法与实现while的功能2.3基于迭代的循环、基于索引的循环3switch3.1switch的基本使用3.2各种形式1if/else1.1语法 //基本形式if条件1{ }else条件2{ }else{ }多个分支age:=......