首页 > 其他分享 >说说最近工作中go语言踩到的坑

说说最近工作中go语言踩到的坑

时间:2024-05-28 15:23:40浏览次数:20  
标签:case websocket 语言 switch 最近 vv go any

switch type的case带多个类型

func Test_switch(t *testing.T) {
	var cca any = uint8(1)

	switch vv := cca.(type) {
	case uint8, uint16:
		fmt.Println(vv == 1, vv)  // false, 1
	}
}

case如果带多个类型,vv最后还是any

github.com/gorilla/websocket的Conn的Read Write都不能并发调用

有个需求,监听多个chan,然后发给当前连接着的websocket连接 并发调用了。第二天自己review的时候感觉别扭,看了下文档是不可以这样做的

正确用法

select {
case m :=<- c1:
	conn.Write(m)
case m :=<- c2:
	conn.Write(m)
}

标签:case,websocket,语言,switch,最近,vv,go,any
From: https://www.cnblogs.com/xiaotushaoxia/p/18218107

相关文章

  • Angular primeNg i18n 国际化多语言处理
    i18nAPI允许为组件全局设置翻译并与翻译库集成。PrimeNg官网相关地址详细步骤如下: 1:安装如下两个包。一个是翻译的一个是语音请求的npminstall@ngx-translate/core@ngx-translate/http-loader--save2:项目assets目录下创建en.json和zh.json两个文件或者更多国......
  • 数据结构的直接插入排序(C语言版)
    一.直接插入排序的基本概念1.直接插入排序的基本思想将数组分为已排序和未排序两部分。每次从未排序部分取出一个元素,将其插入到已排序部分的合适位置,使得已排序部分保持有序。重复步骤2,直到整个数组有序。2.排序的工作原理假设前i-1个元素已经有序,现在要将......
  • RunnerGo V4.6.0 新增功能介绍
    RunnerGo最新V4.6.0版本不仅对原有功能进行了深度优化和改进,还新增了一些新功能。 UI插件:浮窗升级,优化浏览体验此次更新UI插件全新升级至V2.1版本。新版取消了页面内右下角按钮的设计,在浏览器右侧开启了浮窗,从而更方便客户操作浏览器界面。 RunnerGoUI插件本次升级前&后......
  • Rust语言实现的去中心化AI网络节点
    一、概述去中心化和人工智能(AI)是两个极具潜力的发展方向。Gaia项目正是将这两者结合起来,创造了一个去中心化的AI网络节点。本文将深入探讨Gaia项目的技术细节,通过丰富的示例和详细描述,帮助读者全面理解并掌握该技术。二、什么是Gaia?Gaia是一个去中心化的人工智能网络,它旨......
  • 序列化与反序列化(GO)
    GO序列化与反序列化定义序列化:把对象转化为可传输的字节序列的过程称为序列化反序列化:把字节序列还原为对象的过程称为反序列化。--作为开发者,序列化和反序列化一直是我们老生常谈的问题,也是非常琐碎但是重要的知识点。对于序列化与反序列化,我这里强烈推荐一篇博客,你可以从中......
  • Go实战全家桶之九:统一网关
    开源:https://gitee.com/ichub/gocenter.git代码:配置:gateway:bypass:-path:/goauth/login-path:/goauth/logoutroutes:-path:/datadictserviceId:web.platform.com-path:/deptempserviceId:web.platform.com-p......
  • go timer
    Timer的创建Timer是一次性的时间触发事件,这点与Ticker不同,后者则是按一定时间间隔持续触发时间事件。Timer常见的使用场景如下:场景1:t:=time.AfterFunc(d,f)场景2:select{casem:=<-c:handle(m)case<-time.After(5*time.Minute):fmt.Pri......
  • 【转载】从零开始的硬件之路14:解决AD工程文件过大问题及运行AD插件导入Logo
    原文链接:https://zhuanlan.zhihu.com/p/397285331 这篇讲两个内容,分别是”解决AD工程文件过大问题“和”运行AD插件导入图形符号“。目录:AD工程文件过大问题运行AD插件导入Logo首先何为工程文件过大,来图直接说明:可以看到一个工程文件占用了两百多的内存(我以前的一个......
  • 枚举(C语言)
    1.枚举定义枚举是C语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁,更易读。枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。定义一个枚举类型,需要使用 enum 关键字,后面跟着枚举类型的名称,以及用大括号 {} ......
  • Red is good
    Description桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元。可以随时停止翻牌,在最优策略下平均能得到多少钱。Input一行输入两个数R,B,其值在0到5000之间Output在最优策略下平均能得到多少钱。解析设计状态:\(f[i]......