微游技术部一周分享 20211017期
大家好,这里是微游技术部,以下是本周分享的内容:
1. golang的强类型特性导致在使用time.Sleep接口出现的问题
golang是一个强类型语言,强到甚至不支持兼容的类型自动进行转换,例如int不能直接当做int64来用。
一个典型而且常犯的错误例子是,int类型的变量直接与时间接口中的Duration类型相乘,例如
以下代码:
rand.Seed(time.Now().UTC().UnixNano())
n := rand.Intn(10)
time.Sleep(n * time.Second) // 报错
会报错:int与Duration类型不匹配
Cannot use 'n * time.Second' (type int) as the type Duration
Invalid operation: n * time.Second (mismatched types int and Duration)
需要将n进行类型转换
time.Sleep(time.Duration(n) * time.Second) // 不报错
另外,有一种看似与以上规则冲突的写法,直接使用常量与Duration数值相乘,却正常编译不报错:
time.Sleep(2 * time.Second) // 不会报错
这是为什么呢?
2. 游戏联机对战引擎MGOBE介绍
https://gitee.com/dony1122/ccFramework/blob/master/MGOBE游戏对战引擎.md
MGOBE: Mobile Game Online Battle Engine
这是腾讯云提供的一个游戏服务,它为游戏提供房间管理、在线匹配、帧同步、状态同步等网络通信服务,帮助开发者快速搭建多人交互游戏,适用于回合制、策略类、实时会话(休闲对战、MOBA、FPS)等游戏。
官网:https://cloud.tencent.com/product/mgobe
3. 分享一个vscode的正则表达式插件 any-rule
https://gitee.com/dony1122/ccFramework/blob/master/vscode正则插件.md
any-rule是一个常用正则表达式合集和工具,它维护了一个常用正则表达式合集,并且本身是一个支持 Web/VS Code/idea/Alfred Workflow 多平台的正则表达式工具。
4. nuxt.js项目进行国际化
Nuxt.js提供了国际化模块,可以很容易实现多语言功能。
官方文档:https://i18n.nuxtjs.org/
5. npm 报错unable to resolve dependency tree的解决方法
以上。