
指针
static_cast适用于编译期可确认的类型转换,如数值转换、向上转型或自定义转换函数;dynamic_cast依赖RTTI和虚函数表,仅用于多态类型的运行时安全向下转型,失败时指针返回nullpt...
Go中结构体默认浅拷贝,赋值时基本类型字段独立,但slice、map、指针、chan、func和interface{}字段共享底层数据;深拷贝需手动实现Clone方法或谨慎使用序列化。
C++标准中不存在也永不加入std::hazard_pointer;它既非已批准TS,也未进入C++26草案,当前仅见于Boost、folly等非标实现,内存回收仍需手动组合原子操作与外部机制。
nil仅是六类引用类型的零值,非所有类型都支持nil比较;判断“空”需按类型区分,初始化方式决定nil或非nil状态,方法调用是否panic取决于是否解引用nil接收者。
绝大多数场景应使用std::map/set而非手写B-Tree,因其红黑树实现已足够快且正确;B-Tree核心价值在磁盘I/O优化,内存中手写反而因缓存不友好等导致性能更差。
必须用指针接收者:修改字段、大结构体、实现接口、统一风格——语义上表示“方法会改变接收者”,避免副本无效修改与接口实现失败。
用reflect.Type.FieldByName()判断字段存在性更安全,因其只查类型定义、不依赖值且不panic;而Value.FieldByName()可能因不可寻址、未导出或nil指针pani...
用sync.Pool复用对象可显著降低GC压力,适用于创建开销大、生命周期短、可重置的无状态对象,需手动Reset并提供fallback创建逻辑,且不可依赖必然命中。
std::format在C++20中已引入但支持不完善,实际项目推荐使用fmt库;absl::StrFormat适合已集成Abseil的场景;选型需重点评估构建链路兼容性与二进制稳定性。
WaitGroup是用于等待多个goroutine完成的同步原语,必须在启动goroutine前调用Add(),goroutine内用deferwg.Done(),主线程调用Wait();不可复制、需...