JavaScript every 与 some:空数组通过了“全部合格”,业务真的允许吗 提交一张必须至少包含一条明细的表单,校验写成每条数量都大于零,空表单却顺利通过了。问题并不是 every 漏做了某次回调,而是“每个已有元素都满足条件”与“至少存在一个元素,并且全部满足条件”本来就是两个不同要求。e... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
JavaScript Date 按年月日创建:本地零点与 UTC 零点为什么不是同一刻 页面选择十月一日,保存成 ISO 字符串后却显示九月三十日,这不一定意味着数据丢了一天。一个年月日可以表达当地日历中的日期,而 Date 需要表示时间轴上的一个时刻。把当地零点换成 UTC 表示,日期部分完全可能落在... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
Bash 双中括号的引号:同一个星号,为什么有时匹配整串有时只认自己 过滤名称时,把匹配模式存进变量是常见做法,但给变量补上双引号后,原本能匹配的文件名突然不通过了。这不一定是脚本写错引号,而是双中括号里的比较运算符允许右侧表达式承担不同职责:有时它是模式,有时它是字面文本。先写出问题... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
Bash 命令替换会删掉末尾换行:加了双引号为什么仍然少几个字符 脚本把命令输出放进变量,再原样写回文件,结果文件末尾的空行没了。变量两边明明加了双引号,为什么仍会改变内容?原因可能发生在引用之前:常用的美元括号命令替换,会移除输出末尾连续的换行字符,双引号并不能撤销这一步。这种规... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
SQLite EXCEPT 做差集:缺少的编号与缺少的明细不能用同一种比较 核对两份导出清单时,常会问“左边有哪些右边没有的内容”。这句话看起来明确,实际却至少有两种意思:缺少哪些编号,或缺少哪些编号与状态的组合。EXCEPT 比较的是查询输出的整行,选择哪些列,本身就在定义什么算同一条。它... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
Python 浅拷贝与嵌套对象:外层换了一份,里面为什么仍会一起变 复制一份任务清单做预览,给预览中的标签加个标记,原始清单却也跟着变化。即使两个列表的身份已经不同,这件事仍可能发生。复制容器与复制容器引用的所有内容是两个动作,只检查外层不是同一个对象,无法证明内部修改已经隔离。理解... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
Python 生成器用完了怎么办:可重复遍历需要重新创建入口 导入任务先遍历一次检查格式,再遍历一次求和,结果却突然变成零。代码没有报错,数据文件也没有变化,问题可能就在函数接收的不是一份可重复读取的数据,而是一个已经走到末尾的生成器对象。重新写一个 for 循环,不会自动倒带... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
Python itertools.tee 分流:两个迭代器为什么仍会一起占用内存 一份数据既要生成预览,又要计算汇总,最自然的想法是把迭代器分成两路。调用 tee 后,确实可以分别推进两个结果,但这不意味着复制了两个独立数据源。它们仍从同一个上游取值,只是各自记录阅读位置,暂存尚未被其他分支追上的... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
用 AI 帮桌面影子小剧场试位置:先让一棵纸树变大变小 桌面影子小剧场不一定要先写长剧本。可以从一个简单动作开始:让一棵纸树在幕布上慢慢变大,再退回原来的大小。AI 适合帮助整理位置与动作的关系,前提是把建议放到已有灯具和实际幕布前试一遍,而不是照着概念图量尺寸。 yunqueblog/ AI分享/ 2026-10-01/ 3 阅读
让 AI 排一张填字小网格:交叉处必须是同一个字 让 AI 出填字游戏时,它可能给出一组熟悉的词和一个漂亮网格,但交叉格里同时需要两个不同的字。更可靠的小范围做法,是先把词真正摆进网格,再为确定的词槽写提示。这样每道题都有位置,答案也能够逐格复核。 yunqueblog/ AI分享/ 2026-10-01/ 3 阅读