自制游戏设计王者
之前为了了解游戏的一些流程 , 在没有了解 cocos 和 unity3d 之前,基于 golang 的 https://github.com/hajimehoshi/ebiten 库做了一般简单的网络游戏 目前有的功能: 1. 随机生成障碍 2. 子弹从人身...
之前为了了解游戏的一些流程 , 在没有了解 cocos 和 unity3d 之前,基于 golang 的 https://github.com/hajimehoshi/ebiten 库做了一般简单的网络游戏 目前有的功能: 1. 随机生成障碍 2. 子弹从人身...
在 golang 里面如果 a + b 或者 a * b 发生溢出时,程序不会报错,会直接得到一个错误的结果,如果程序有大数计算需要做边界检查 // 支持自增的溢出检查的方法 func IncrInt(x int) int { if x == math.MaxInt { panic(...
我们在使用 goroutine 的时候有在需要对循环数据并发执行的时候,有可能会写下如下代码 func main() { wg := sync.WaitGroup{} arr := []int{1, 2, 3, 4} for _, item := range arr { &...
在 Go 中使用 map 时,我们需要了解 map 如何增长和收缩的一些重要特征。让我们深入研究一下,以防止可能导致内存泄漏的问题。 首先,要查看此问题的具体示例,让我们设计一个场景,其中我们将使用以下 map: 每个m值都是一个 128 字节的数组。我们将执行以下操作: 1.分配一个空的 map。 2.添加 100 万个元素。 3.删除所有元素,并运行垃圾收集(GC)。 在每一步之后,我们都要打...
golang 字符串拼接效率 在Go语言中,常见的字符串拼接方法有以下几种: 使用 + 操作符 使用 strings.Join 函数 使用 buffer.WriteString 方法(结合 bytes.Buffer 类型) 使用 fmt.Sprintf 或 fmt.Fprintf 函数 以下是各种方法的...
平时我们使用的切片使用是否有有注意初始化,他们各种初始化的方式性能对比有多大了 方案 1 func sliceCreateSlow() []int { a := make([]int, 0) for i := 0; i < 10000; i++ { ...
先给大家讲个笑话乐呵一下: 有一天阿东到图书馆借了 N 本书,出图书馆的时候,警报响了,于是保安把阿东拦下,要检查一下哪本书没有登记出借。阿东正准备把每一本书在报警器下过一下,以找出引发警报的书,但是保安露出不屑的眼神:你连二分查找都不会吗?于是保安把书分成两堆,让第一堆过一下报警器,报警器响;于是再把这堆书分成两堆…… 最终,检测了 logN 次之后,保安成功的找到了那本引起警报的书,露出了得意...
某系统中有类似下面这样的代码: package main import ( "sync" "time" ) type resp struct { k string v string } func main () { res := fetchData() log.Print(res) } func rpcwork () resp { ...
问题 type Part1 struct { a bool b int32 c int8 d int64 e byte } 在开始之前,希望你计算一下 Part1 共占用的大小是多少呢? func main() { fmt.Printf("bool size: %d\n", unsafe.Sizeof(bool(true))) fmt.Printf(&q...
今天在线上报出了数据库错误: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction 搜索这段错误发现mysql发生了死锁,把等待的事务给回滚了。网上有太多死锁的原理,这里就不说了 现象: 回想这次操作,最近一次大操作 执行了 修改...