-
我以为 LINQ 查询在定义那一行就执行完了,结果它每次遍历都重新查一遍数据库,还因为延迟执行读到了中途变化后的数据的深度复盘
我写 var query = db.Users.Where(...),以为这行就把结果查回来存进 query 了。可程序处处诡异:同一个 query 被用了好几次(Count、foreach、Any),数据库日志里同一查询竟执行了好几遍;更怪的是先 Count 是 100,中间插了几条数据,再 foreach 遍历竟是 103,同一 query 两次结果对不上。深究才懂 LINQ 是延迟执行:定义…- 0
- 0
-
我给函数参数设了个默认空列表,本以为每次调用都会拿到全新的一个,结果它竟在一次次独立的调用之间,诡异地记住了上一次追加进去的数据的深度复盘
我写了个"往列表追加一项再返回"的函数,图方便给列表参数设了默认值 []。本以为每次不传参都会拿到全新的空列表,结果第一次传 a 返回 [a] 没问题,第二次传 b 竟返回 [a,b]、第三次成了 [a,b,c]——它像有记忆一样,在一次次独立调用间累积了所有旧数据。翻文档看到那条著名警告才懂:Python 默认参数是在函数"定义时"求值一次、创建好的,之后…- 0
- 0
求值时机
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!


