KyrieChao

运算符与迭代器收尾

2026-07-31

技术

C 语言

今天讲了三块内容:

  • 位运算符& | ^ ~ << >>)— 清零、置一、翻转、移位,以及用掩码操作指定位的经典写法。关键口诀:n &= ~(0x1 << 17) 清零第 17 位,n |= 1 << 9 把第 9 位置一。
  • 运算符优先级 — "独眼龙比两只眼的正常人更狠"(单目 > 双目),"算比位逻"(算术 > 比较 > 位 > 逻辑),三目倒数第三,赋值倒数第二,逗号最低。
  • 类型转换 — 自动提升(char → int → long → float → double)、强制转型语法 (Type)expr、宽转窄截断、浮点转整数直接去尾。

Rust

Rustlings iterators 部分全部做完,笔记见 Rust/day6.md。今天每道题都卡了很久,暴露出 来的问题不是语法,而是不知道标准库有哪些方法可用

  • capitalize_firstchars() + as_str() 分割首字母和余下部分
  • (1..=num).product() — 阶乘一行搞定,卡最久的一个
  • flat_map — 拍平嵌套迭代器(&[HashMap<_,_>] → 一条流)
  • collect() — 会根据返回值类型自动判断收集成 VecString 还是别的

map_errok() + ? 的配合用法也比昨天熟练了。

思考

核心观点:人并非自主的主体,而是欲望驱动下的被动响应机器。


一、什么是"空壳"

"空壳"在这里指:人没有所谓"自主的意志"。你的每一个行动,背后都站着一种欲望。没有欲望作为燃料,人这台机器就不会运转。


二、两个论据

论据一:食欲——披着生存外衣的欲望

饿的时候,你会为了一口吃的拼命。人们认为这理所当然,因为底层逻辑是"为了生存"。

但换个角度看:你并不是在"选择"进食,你是在被饥饿感驱使着进食。你的行为只是一个生理信号的自动响应。

论据二:性欲——剥离生存借口后的纯粹欲望

性欲与生存无关(个体不交配并不会死)。

但当它出现时,人同样会倾尽所有去满足。这说明驱动力不是"生存的必要性",而是欲望的强度本身

两个论据的共同结论:人的行为不是理性的自主选择,而是被欲望强度决定的。


三、为什么"安逸"是关键证据

如果人是自主的,那在安逸的环境中,人应该照样行动。

但事实相反:

安逸 → 懒惰 → 停滞 痛苦 → 欲望 → 行动

人只有在不舒服的时候才会动。行动的目的永远指向消除不舒服、制造安逸。

这说明:驱动源是负面的(痛苦/欲望),不是正面的(意志/理想)。人的行为是被"推着走",不是"朝着目标走"。


四、核心模型:欲望循环

欲望无法被满足
    │
    ▼
痛苦(张力状态)
    │
    ▼
改变(行动)
    │
    ▼
满足(欲望被填补)
    │
    ▼
欲望感知度降低(阈值升高)
    │
    ▼
满足度下降
    │
    ▼
痛苦(新的张力)
    │
    ▼
改变 → 满足 → 阈值升高 → ...

这个循环没有终点。每一次满足都在抬高下一次满足的门槛。


五、类比:机器

机器
能量耗尽 停止运转
欲望消失 停止行动
加燃料 重新运转
新欲望产生 重新行动
停止条件 零件损坏 死亡

机器因为燃料耗尽而停,因为加油而动。

人因为欲望满足而停,因为新欲望产生而动。

唯一的停止方式:机器坏掉,或者人死掉。


六、结论

人没有"想不想被驱动"的选择权——欲望产生的那一刻,驱动就已经发生了。

所谓 "自由意志" ,可能只是我们在事后给自己编的理由。


明日计划

  • C 语言:继续跟课堂节奏

  • Rust:推进到 smart_pointers