golang string和[]byte的对比

## golang string和[]byte的对比 为啥string和[]byte类型转换需要一定的代价? 为啥内置函数copy会有一种特殊情况`copy(dst []byte, src string) int`? string和[]byte,底层都是数组,但为什么[]byte比string灵活,拼接性能也更高([动态字符串拼接性能对比](https://sheepbao.github.io/post/golang_string_connect_performance/))? ...阅读全文

2017-09-30 16:47:41 sheepbao
阅读:1220 评论:1

golang工程师面试第三天

**1**.简述golang中make和new的区别 make用于内建类型(只能用于创建map、slice 和channel)的内存分配。并且返回一个有初始值(非零)的T类型,而不是*T。 new用于各种类型的内存分配。new(T)分配了零值填充的T类型的内存空间,并且返回其地址,即一个*T类型的值。用Go的术语说,它返回了一个指针,指向新分配的类型T的零值。有一点非常重要:**new返回指针**。 **2**.简要描述go中的main和init函数的区别 首先,这两个函数应...阅读全文

2018-01-15 21:36:48 yinshidaoshi
阅读:10642 评论:20

宏观看 Go 语言中的 Map 内部

网上有很多涉及 slice 内部的文章,相比之下深入探讨 map 的文章非常稀少,我非常好奇为什么会这样,就去找了这份能深入了解 map 的源码。 https://golang.org/src/runtime/map.go(译者注:因为最新 1.11 版本变更了文件名,所以链接修改为最新的地址。) 这些代码对于我来说很复杂,但是我觉得我们可以用一种宏观的形式去理解 map 是如何构建以及增长。这种方式也许可以解释 map 为什么无序,高效和快速。 **创建和使用 Map** ...阅读全文

2018-11-02 23:29:54 polaris
阅读:2639 评论:0