如何判断golang变量是分配在栈(stack)上还是堆(heap)上?

Go这门语言抛弃了C/C++中的开发者管理内存的方式:主动申请与主动释放,增加了逃逸分析和GC,将开发者从内存管理中释放出来,让开发者有更多的精力去关注软件设计,而不是底层的内存问题。这是Go语言成为高生产力语言的原因之一。 ### 一、如何判断变量是分配在栈(stack)上还是堆(heap)上? Golang 中的变量只要被引用就一直会存活,存储在堆上还是栈上由内部实现决定而和具体的语法

- 阅读全文 -

Go语言如何高效的进行字符串拼接(6种方式进行对比分析)

本文讨论多个大字符串拼接时的性能对比 想看结论直接跳到文末即可: 大量字符串拼接的测试我们先构建一个长度为200的字符串切片: ``` var baseSlice []string for i := 0; i < 200; i++ { baseSlice = append(baseSlice, base) } ``` 然后遍历这个切片不断的进行拼接,因为

- 阅读全文 -

golang 常见问题汇总

### 特点 - 语法简洁 - 快速编译 - 并发编程模型 - 面向对象无继承 使用组合设计模式 (composition) - 无需人工介入的 内存管理机制 Go 语言 是现代的、快速的,带有一个强大的标准库。 内置对并发的支持。 使用接口作为代码复用的基础模块 ### 字符串替换 ``` 替换所有的空格和换行符号 reg, _ := regex

- 阅读全文 -