/ 微游技术部

微游技术部一周分享 20211017期

minigame.vip

大家好,这里是微游技术部,以下是本周分享的内容:

1. golang的强类型特性导致在使用time.Sleep接口出现的问题

https://overstarry.vip/posts/golang随机timesleep出现的问题/

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项目进行国际化

https://segmentfault.com/a/1190000040806026

Nuxt.js提供了国际化模块,可以很容易实现多语言功能。
官方文档:https://i18n.nuxtjs.org/

5. npm 报错unable to resolve dependency tree的解决方法

https://segmentfault.com/a/1190000040792821

以上。