「副作用」指的是什么

说一个函数有副作用,意思是它除了返回结果,还【0】。

开始练习 →

⚠️ 纯函数最实在的好处是什么

纯函数在工程上最实在的好处是【0】。

开始练习 →

🔴 可变默认参数为什么危险

写 def f(x, box=[]) 这种默认值,危险在于【0】。

开始练习 →

🔴 返回值一样,不代表函数一样

两个函数,一个顺手往外面的列表里记了一笔,一个什么也没碰。各调三次,比一比返回值,再看看外面那个列表: LOG = [] def impure(a): LOG.append(a) # ← 顺手改了外面的东西

开始练习 →

🔴 修掉可变默认参数

左边那个有坑的版本已经写好了。把右边修好——每次调用都该拿到一个新列表。两版各调三次,输出每次返回列表的长度。

开始练习 →

自己写:把它写成纯的

照着 impure 的算法写一个纯版本,输出它的三个返回值,再确认外面那个列表一个都没多。

开始练习 →

「不可变」说的是什么

说一份数据是不可变的,意思是【0】。

开始练习 →

⚠️ 就地改一份数据,风险在哪

一个函数把传进来的列表就地排了序。风险是【0】。

开始练习 →

不可变数据在并发下的好处是什么

多个地方同时读同一份不可变数据时,好处是【0】。

开始练习 →

想「改」一份不可变数据,该怎么办

手里是一个元组,想得到一个多了一项的版本。做法是【0】。

开始练习 →