Re: [討論] Python 3.10將加入Switch-Case語句

看板Soft_Job作者 (Ray)時間3年前 (2021/03/30 00:55), 編輯推噓4(402)
留言6則, 4人參與, 3年前最新討論串6/6 (看更多)
: ----------------------------- : 還有那篇文章舉的,在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

03/30 10:56, 3年前 , 1F
原本應該要是 1,但是試圖 match 第二個的時候被改成2了?
03/30 10:56, 1F

03/30 21:23, 3年前 , 2F
比較合理的行為,應該是 case 裡的 a,scope 應該只在 c
03/30 21:23, 2F

03/30 21:23, 3年前 , 3F
ase 接的那個 block ,而且會把外面的 a shadow 掉?
03/30 21:23, 3F

03/30 21:25, 3年前 , 4F
樓上兩位有 get 到重點。讓我們坐看會發生什麼事
03/30 21:25, 4F

03/30 21:26, 3年前 , 5F
至少 Scala 是這樣處理的 XD
03/30 21:26, 5F

04/01 18:46, 3年前 , 6F
Python的block就沒有作Scope 這沒有好的解法
04/01 18:46, 6F
文章代碼(AID): #1WOWQ88m (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1WOWQ88m (Soft_Job)