On Fri, 26 Jun 2020 at 11:29, Daniel Moisset <[email protected]> wrote:
>
> I think roughly half of the uses will actually be for "the switch statement
> we never had", where all branches would be constants. I've been writing a lot
> of code like that these last couple of weeks, so I may be biased (although
> the PEP authors may have been writing AST visitors this last week and may be
> biased the other way ;-) )
>
> As a sub point, I can understand if the PEP authors argue "match is not for
> that, use if/elif/dicts of functions in that case like you did before and
> ignore this PEP", but if that's the case, that should be explicit in the PEP.
For me, this prompts the question (which I appreciate is more about
implementation than design) - would there be any (significant)
performance difference between
match var:
case 1:
print("Got 1")
case 2:
print("Got 2")
case _:
print("Got another value")
and
if var == 1:
print("Got 1")
elif var == 2:
print("Got 2")
else:
print("Got another value")
?
In C, the switch statement was explicitly intended to be faster by
means of doing a computed branch. In a higher level language, I can
see the added features of match meaning that it's *slower* than a
series of if tests for simple cases. But I have no intuition about the
performance of this proposal. I'd like to believe that the choice
between the 2 alternatives above is purely a matter of preferred
style, but I don't know. If match is significantly slower, that could
make it a bit of an attractive nuisance.
Paul
_______________________________________________
Python-Dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/GNTYPDKJFJDHHFAAA5ATI7RFVNEPOHQ3/
Code of Conduct: http://python.org/psf/codeofconduct/