与“该用”相关的TAG标签
goroutine中的panic必须在内部用recover捕获,因为panic不跨协程传播,子协程panic后静默退出,主协程不受影响但可能导致数据丢失、资源泄漏、任务中断且无日志;recover仅在本协程defer中有效,需配合debug.Stack()结构化记录并及时退出,不可继续执行业务逻辑。
MySQL函数中只能用SELECT...INTO查询单行单值,不可返回结果集;需声明READSSQLDATA,多行会报错;复杂查询应改用存储过程。
该用std::variant而不是虚函数多态时:类型集合固定且编译期可知,强调“它是什么”而非“它能做什么”,需值语义、无堆分配、类型数少(10)且不频繁增删。
绝大多数情况下该用await,ContinueWith仅适用于需精细控制调度、适配旧回调API或构建底层异步设施等极少数场景。
PHP的线程安全类型需通过phpinfo()或php-i查看ThreadSafety行,enabled为TS,disabled为NTS;TS启用ZTS编译选项并隔离全局变量,NTS性能更高但仅适用于单线程SAPI(如FPM);现代主流环境(Nginx+FPM、Docker等)均应使用NTS。
PHP常量定义后真不能改,用define()或const定义的常量在脚本运行期间无法重新赋值或unset;尝试修改会触发Fatalerror、Parseerror等错误;需用变量或配置数组替代动态需求。
标签不能直接替代视觉侧边栏,它专指与主内容相关但可独立存在的附属信息;若侧边栏含导航、logo等结构性内容,应改用、等更准确的语义化标签。
绝大多数失败场景该用error,而非panic;error用于可预期、可恢复的业务错误,如文件不存在、JSON解析失败;panic仅用于程序无法继续运行的致命缺陷,如关键配置缺失、逻辑矛盾或不可达分支。
普通using块中await会导致同步Dispose被强制调用,若资源需异步清理(如未实现IAsyncDisposable却依赖异步释放),将引发InvalidOperationException或资源泄漏;正确做法是:需异步释放时用awaitusing,否则用using。
protected用于子类复用重写,无视程序集边界;internal用于同一程序集内共享,无视继承关系;protectedinternal表示“protected或internal”任一满足即可,非两者同时满足。
