
值传递
浅拷贝仅复制指针导致共享内存,深拷贝需手动分配并复制数据;拷贝构造函数在对象初始化、值传递参数、返回局部对象时调用;必须同时重载拷贝构造函数和operator=以避免行为不一致,并注意自赋值、异常安全...
&是取地址操作符,仅返回变量内存地址;在声明时为类型修饰符(如int),使用时为解引用运算符;二者必须配对使用才能实现通过指针修改原变量。
Go采用词法作用域,变量可见性由声明位置、首字母大小写及包归属决定;支持块级作用域;包级变量需编译期初始化,运行时逻辑须用init函数;参数与返回值属函数作用域;逃逸不影响作用域。
Go没有try/catch是因设计上坚持错误必须显式处理,error作为接口类型通过多返回值传递,panic仅用于不可恢复崩溃,recover仅为同goroutine兜底而非错误处理机制。
Go函数签名必须显式声明参数和返回类型,不支持类型推导;多返回值需全接收或用_丢弃;指针传递本质是值传递;推荐泛型替代interface{}以提升类型安全。
Go中[3]int是指向[3]int数组的指针,[3]int是含3个*int元素的数组;前者传参零拷贝且可修改原数组,后者传递指针数组本身。
Go接口值虽非指针类型,但其底层由两部分组成(类型头与数据指针),对结构体实例的引用行为类似指针——多个接口值副本共享同一底层数据,方法调用可能影响原始状态,尤其当方法使用指针接收者时。
本文详解sync.WaitGroup常见误用导致程序卡在wg.Wait()不返回的问题,重点说明值传递vs指针传递、deferwg.Done()的调用时机等关键陷阱,并提供可立即修复的代码示例。
Go数组传参会完整复制底层数组,因数组是值类型;应优先用*[N]T或[]T替代[N]T以避免拷贝,但需注意指针解引用和slice共享风险。
构造函数是C++中用于初始化对象的特殊成员函数,包括默认构造函数(无参或全默认参数)和拷贝构造函数(const引用单参),分别在对象创建和用同类型对象初始化时调用;编译器仅在未显式定义对应函数时隐式生...