作者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://www.ptt.cc/bbs/Soft_Job/M.1617036936.A.230.html
推 yyhsiu: 原本應該要是 1,但是試圖 match 第二個的時候被改成2了? 03/30 10:56
推 brianhsu: 比較合理的行為,應該是 case 裡的 a,scope 應該只在 c 03/30 21:23
→ brianhsu: ase 接的那個 block ,而且會把外面的 a shadow 掉? 03/30 21:23
→ electgpro: 樓上兩位有 get 到重點。讓我們坐看會發生什麼事 03/30 21:25
推 brianhsu: 至少 Scala 是這樣處理的 XD 03/30 21:26
推 linlin110: Python的block就沒有作Scope 這沒有好的解法 04/01 18:46