[Python-Dev] Switch statement

Roger Miller rogermiller at alum.mit.edu
Thu Jun 22 10:06:45 CEST 2006


Ka-Ping Yee wrote:
 > Hmm, this is rather nice. I can imagine possible use cases for
 >
 > switch x:
 > case > 3: foo(x)
 > case is y: spam(x)
 > case == z: eggs(x)
Part of the readability advantage of a switch over an if/elif chain is 
the semantic parallelism, which would make me question mixing different 
tests in the same switch. What if the operator moved into the switch 
header?
 switch x ==:
 case 1: foo(x)
	case 2, 3: bar(x)
 switch x in:
	case (1, 3, 5): do_odd(x)
	case (2, 4, 6): do_even(x)
"switch x:" could be equivalent to "switch x ==:", for the common case.
I've also been wondering whether the 'case' keyword is really necessary? 
 Would any ambiguities or other parsing problems arise if you wrote:
 switch x:
 1: foo(x)
	2: bar(x)
It is debatable whether this is more or less readable, but it seemed 
like an interesting question for the language lawyers.


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /