
指针
用operator[]直接取str[0]最快但不检查越界,适合已知非空场景;at(0)安全但有异常开销,仅推荐低频路径使用。
defer在函数退出前统一执行,而非return后;return实为赋值执行defer跳出三步;命名返回值可被defer修改,匿名返回值不可;panic也会触发defer;defer参数注册时求值;闭...
std::reverse_iterator是普通迭代器的包装,无需手动构造;推荐用autoit=vec.rbegin()遍历,其*和->操作底层迭代器减一位置,base()返回比当前反向位置多一...
可恢复桌面环境:一、任务管理器新建explorer.exe;二、Win+R运行explorer.exe;三、先结束再重启explorer.exe;四、同步重启dwm.exe与explorer.exe;...
Go语言中slice、map、chan等类型赋值时共享底层数据,因其实现含指针字段;range遍历得元素副本,修改无效;for循环变量复用导致闭包捕获同一地址,Go1.22+默认修复。
std::function能存储带捕获的Lambda,因其内部类型擦除;但必须显式声明签名,无捕获Lambda才可转函数指针,带捕获的则不可。
nil仅是六类引用类型的零值,非所有类型都支持nil比较;判断“空”需按类型区分,初始化方式决定nil或非nil状态,方法调用是否panic取决于是否解引用nil接收者。
Go中结构体默认浅拷贝,赋值时基本类型字段独立,但slice、map、指针、chan、func和interface{}字段共享底层数据;深拷贝需手动实现Clone方法或谨慎使用序列化。
用sync.Pool复用对象可显著降低GC压力,适用于创建开销大、生命周期短、可重置的无状态对象,需手动Reset并提供fallback创建逻辑,且不可依赖必然命中。
Go语言反射不直接参与RPC通信,仅被net/rpc等框架内部用于服务注册、方法查找和参数编解码;需满足导出方法、正确签名及字段导出等约束,否则调用时panic或静默失败。