Bazel教程:构建iOS应用[翻译] 2016-05-19 bazel 约 1714 字 预计阅读 4 分钟 Bazel教程:构建iOS应用 原文:http://bazel.io/docs/tutorial/ios-app.html 译者:chai2010 本教程包含以下步骤(Bazel新用户请先参考: Bazel入门教程): 代码预览 创建BUILD构建文件 针对模拟器构建应用 查看构建输出 在模拟器环境运行/调试应用 针对设备构建应用 安装应用到设备 需要在 Mac OS X 环境,WORKSPACE 不用配置。 阅读全文
Bazel入门[翻译] 2016-05-12 bazel 约 2330 字 预计阅读 5 分钟 Bazel入门[翻译] 原文:http://bazel.io/docs/getting-started.html 译者:chai2010 阅读全文
驳狗屎文 '我为什么放弃Go语言' 2015-06-30 golang 约 17363 字 预计阅读 35 分钟 驳狗屎文 “我为什么放弃Go语言” 此篇文章流传甚广, 其实里面没啥干货, 而且里面很多观点是有问题的. 这个文章在 golang-china 很早就讨 阅读全文
Go语言中隐式接口的冲突问题 2015-05-19 golang 约 710 字 预计阅读 2 分钟 Go语言中采用的是隐式接口, 只要满足的接口的定义, 就可以当作接口使用. 比如内置的 error 接口: type error struct { Error() string } 隐式接口的好处有很多. 但我个人觉得最主 阅读全文
Go语言中不同类型切片之间的相互转换 2014-05-20 golang 约 496 字 预计阅读 1 分钟 将 []T 切片转换为 []byte 类似C语言中将其他类型的数组转换为char数组: func ByteSlice(slice interface{}) (data []byte) { sv := reflect.ValueOf(slice) if sv.Kind() != reflect.Slice { panic(fmt.Sprintf("ByteSlice called with non-slice value of type %T", slice)) } h := (*reflect.SliceHeader)((unsafe.Pointer(&data))) h.Cap = sv.Cap() * int(sv.Type().Elem().Size()) h.Len = sv.Len() * int(sv.Type().Elem().Size()) h.Data 阅读全文