-
Go 的 unicode.IsDigit 判断的是 Unicode 十进制数字字符。本文用 rune 遍历示例说明它与 ASCII 字节判断、strconv 数值解析和 unicode.IsNumber 的区别,帮助你处理多语言文本中的数字字符。
-
MySQL InnoDB 出现锁等待时,可先查询 sys.innodb_lock_waits,再结合 INNODB_TRX、data_locks 和 data_lock_waits 定位等待事务、阻塞事务及锁资源;阻塞 SQL 为空时继续从 Performance Schema 会话历史追溯。
-
MySQL REGEXP_SUBSTR 默认返回第一个匹配,想取第 N 个匹配要把 occurrence 作为第四个参数传入。本文用可直接改写的 SQL 说明 pos、occurrence、match_type、NULL 和无匹配的处理边界。
-
MySQL ST_IsSimple 用来判断几何是否满足简单性规则。本文以 LineString 为主线,说明如何区分正常折线、自相交折线、重复节点和闭合端点,如何理解 0/1 返回值,以及为什么 ST_IsSimple 不能替代 ST_IsValid。
-
MySQL CHECK 在表达式为 TRUE 或 UNKNOWN 时通过,范围判断不能单独禁止 NULL。通过可选、必填和条件必填三个原创表结构,说明 NOT NULL、IS NOT NULL 与执行状态的配合。
-
Go token.File.LineStart 接受 1-based 行号并返回 token.Pos。本文用最小示例说明如何建立行表、把行首位置转换为文件内字节偏移,并避开无效行号、UTF-8 与 CRLF 带来的位置误判。
-
Go 的 color.RGBA 与 Color.RGBA() 都遵循预乘 Alpha 语义,透明度较低时读取到的 RGB 会随之变小。本文解释返回值、NRGBA 与 NRGBAModel 的差异,并给出 image.Image 通用读取时的选择方法。
-
Go 的 FindAllStringSubmatchIndex 返回的是按匹配分组排列的字节索引矩阵。本文用 nil、[-1,-1] 和 [k,k] 三个结果区分整体无匹配、子表达式未参与和空字符串匹配,并给出安全切片与 n 参数的排查写法。
-
runtime.SetFinalizer 不是定时器,也不保证在进程退出前执行。本文从对象可达性、闭包捕获、引用环、GC 与单一 finalizer 队列几个方向解释对象未及时回收,并给出 KeepAlive、显式 Close 与 AddCleanup 的选择边界。
-
Go net.ListenConfig.Listen 报地址已被占用时,先确认 bind 阶段的冲突端点,再核对 PID、tcp/tcp4/tcp6 地址族和程序生命周期,最后才考虑平台相关的端口复用选项。
-
Go ast.Inspect 返回 false 只跳过当前子树。本文用原创函数声明筛选示例,解释 found 标记、nil 退出通知,以及用 ast.Preorder 和 break 结束迭代的区别。
-
Go regexp.Compile 遇到重复命名分组时,先确认同名捕获组本身可以被接受,再用 syntax.Error 的 Code 和 Expr 定位真正的语法错误,并结合 SubexpNames 与 SubexpIndex 读取同名组索引。
-
Go text/template 读取多层 map 时,可以用内置 index 函数把多个键按层传入;本文说明点号取键与 index 的区别、动态键写法,以及 missingkey=error 如何让缺失字段及时返回 Execute 错误。
-
Go 的 url.URL 会同时保留解码后的 Path 与可选的 RawPath 编码提示。本文用具体 URL 说明两者为什么不同,并用 EscapedPath 判断最终输出。
-
排查 Go net.TCPConn 的 KeepAlive 参数未生效时,先区分开关、空闲时间、探测间隔与应用层超时,再核对 TCPConn 类型、API 返回错误、Dialer 或 ListenConfig 的配置来源和操作系统边界,并给出旧版本与 Go 1.23+ 的正确写法。