摘要:
1 前言 所谓逃逸分析(Escape analysis)是指由编译器决定内存分配的位置,不需要程序员指定。函数中申请一个新的对象 如果分配在栈中,则函数执行结束可自动将内存回收; 如果分配在堆中,则函数执行结束可交给GC(垃圾回收)处理; 有了逃逸分析,返回函数局部变量将变得可能,除此之外,逃逸分析 阅读全文
摘要:
recover 必须在 defer 函数中运行。recover 捕获的是祖父级调用时的异常,直接调用时无效。 func main() { recover() panic(1) } 直接 defer 调用也是无效。 func main() { defer recover() panic(1) } de 阅读全文
摘要:
不能,尝试使用索引遍历字符串,来更新字符串中的个别字符,是不允许的。 string 类型的值是只读的二进制 byte slice,如果真要修改字符串中的字符,将 string 转为 []byte 修改后,再转为 string 即可。 // 修改字符串的错误示例 func main() { x := 阅读全文