作者electgpro (Ray)
看板Soft_Job
标题Re: [讨论] Python 3.10将加入Switch-Case语句
时间Tue Mar 30 00:55:33 2021
: -----------------------------
: 还有那篇文章举的,在PEP 635 里的例子:
: -----------------------------
话说我只是想分享一下我前一阵子在 twitter 上面看到的讨论
简短的来说就是某 PL 强者认真的研究了一下 PEP 622,然後提出了质疑。
(对,我知道不是 635 但我只是要分享这件有趣的事情)
先附上原文:
https://thautwarm.github.io/Site-32/Design/PEP622-1.html
TL;DR 是这样的
a = 1
match [2, 3]:
case [0, 1]: ...
case [a, 2]: ...
case _:
print(a)
你们觉得会印出什麽?
然後我刚刚瞄过 PEP 635,有看到
"This PEP provides the technical specification for the match statement.
It replaces PEP 622"
但我没看到 635 对这件事情有什麽对策,不过老实说我也只是路过~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 163.114.131.3 (法国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1617036936.A.230.html
1F:推 yyhsiu: 原本应该要是 1,但是试图 match 第二个的时候被改成2了? 03/30 10:56
2F:推 brianhsu: 比较合理的行为,应该是 case 里的 a,scope 应该只在 c 03/30 21:23
3F:→ brianhsu: ase 接的那个 block ,而且会把外面的 a shadow 掉? 03/30 21:23
4F:→ electgpro: 楼上两位有 get 到重点。让我们坐看会发生什麽事 03/30 21:25
5F:推 brianhsu: 至少 Scala 是这样处理的 XD 03/30 21:26
6F:推 linlin110: Python的block就没有作Scope 这没有好的解法 04/01 18:46