golang
已收录文章:1284篇
-
Go通过指针与自动GC实现安全内存管理,指针用于共享数据和避免拷贝,new分配堆内存返回指针,make初始化slice、map、channel并返回原类型,逃逸分析决定变量栈或堆分配,避免不必要指针逃逸与长期持有可减少GC压力,结合sync.Pool复用对象可提升性能。438 收藏
-
答案:strings包提供不可变字符串的操作函数,包括判断前缀、后缀、子串,统计次数,分割连接,替换修剪及大小写转换,所有操作均返回新字符串。287 收藏
-
errors.Is用于判断错误是否等于目标错误或被其包装,可穿透多层包装。使用%w包装错误时,errors.Is能递归匹配错误链,适合判断预定义错误值,而errors.As用于类型断言和提取自定义错误类型。457 收藏
-
合理使用GoModule特性,通过分类管理外部与内部测试依赖,利用主模块统一版本、replace指令和vendor锁定,结合测试类型隔离,确保多模块项目测试环境一致性和可维护性。486 收藏
-
答案:Go标准库log包提供基础日志功能,通过log.Print输出信息,SetPrefix设置前缀,SetFlags配置时间、文件等格式,SetOutput重定向到文件,默认输出到stderr,支持Fatal和Panic级别,适用于简单场景。285 收藏
-
值类型赋值和传参时复制整个数据,如int、struct、数组等,默认存储在栈上,修改副本不影响原变量;引用类型如slice、map、channel仅复制描述符(如指针、长度),共享底层堆内存,修改相互影响;指针通过&取地址实现共享访问,小对象传值更高效,大对象用指针避免开销;选择依据数据大小、共享需求及性能权衡。248 收藏