Git 最近切换到 Windows 工作,使用 WSL 作为命令行方案。但在 WSL 里面安装 git 后,在工程里面执行命令时,总感觉非常缓慢。 执行一下 git status 都要卡好一会儿。 经过一番搜索,原因大概是 Windows 的路径索引到 WSL 之间有一个转换导致的?具体没有细看。 但找到一个解决方案: 先在 Windows 中安装 Git,然后在 WSL 里面用 git.exe 替代 Linux 版本的 git。 因为我使用的oh-my-zsh,所以通过在.zshrc中定义git函数针对 WSL 路径和 Windows 路径区别处理(这个代码是抄的): function git() { if $(pwd -P | grep -q "^\/mnt\/.\/*"); then git.exe "$@" else command git "$@" fi } 但这样做需要注意两个环境的.gitconfig不是共用的。 可以配置includeIf,通过匹配 gitdir, 在 WSL 里面引用 Windows 的 .gitconfig;又在 Windows 里面引用 WSL 的 .

Read More

闪退点

Version: Cocos2dx-Lua 3.16

在某个页面修改后,出现闪退。查看修改记录没有特别的地方,均为修改图片或者条件判断。

启动 XCode 发现闪退位置出现在void Node::onEnterTransitionDidFinish()中, 在其调用子节点的child->onEnterTransitionDidFinish()时,child指针无效。

Read More

在日志信息中,有时需要获取当前函数的调用信息,比如打印调用栈:

调用栈

debug.Stack() []byte

debug.Stack()函数可以获取当前 goroutine 的调用栈信息,需要import "runtime/debug"

 8
 9
10
11
12
13
14
15
16
17
18
19
20
func foo() {
    fmt.Println("--- BEGIN ---")
    fmt.Println(string(debug.Stack()))
    fmt.Println("--- END ---")
}

func boom() {
    foo()
}

func main() {
    boom()
}

Read More

配置文件

在游戏工程中,通常有大量配置是由策划提供,再转换成程序方便读取的格式添加到工程中。

在我参与的Cocos2dx-Lua工程中,策划通常在Excel中配置,再通过脚本转换为Lua-Table的文件。

比如常见的道具表转换后:

Read More

govendor

go vendor 是 go 1.6 官方正式引入的包管理方式。

其基本思路是,将引用的外部包的源代码放在当前工程的vendor目录下面,go 编译时会优先从vendor目录寻找依赖关系。

Read More

数组与切片

以前粗学时并没有留意 Golang 的数组,一直以为只有切片。

今天看《Go 语言实践》时才发现 Golang 也有数组。与切片的区别是定义时指定长度(例如长度为 4 的 int 型数组var array [4]int)。

数组赋值时会拷贝整个数组,所以作为参数传递时也会完整拷贝,要考虑性能合理使用,必要时可以使用指针。

以下代码便于理解数组和切片:

Read More

Author's picture

SelFree

城市永远年轻,而我们终将老去

Programer

ChengDu·China
-