SWITCH
Un valor buscado en un diccionario o una lista, con un valor alternativo para cuando no está.
Sintaxis
SWITCH(value,{case:result,case:result,…},otherwise)
SWITCH(value,{result,result,…},otherwise)
SWITCH(value,table,otherwise)
SWITCH(value,table)
| Argumento | Significado |
|---|---|
| value | Lo que se busca. |
| {case:result,…} | Un diccionario: el resultado para cada caso. |
| {result,…} | Una lista: value indica qué resultado, contando desde 0. |
| table | Cualquier expresión que dé un diccionario o una lista: por ejemplo, una variable que lo contenga. |
| otherwise | Qué dar cuando value no es un caso del diccionario ni una posición de la lista (opcional). |
Resultado
El resultado para value, o otherwise.
Ejemplos
En el dibujo de ejemplo:
| Expresión | Resultado |
|---|---|
SWITCH(2,{1:"one",2:"two"},"many") |
"two" |
SWITCH(5,{1:"one",2:"two"},"many") |
"many" |
SWITCH(L,{500:10,600:12},8) |
10 |
SWITCH(1,{"zero","one","two"},"many") |
"one" |
SWITCH(3,{"zero","one","two"},"many") |
"many" |
SWITCH(1.5,{"zero","one","two"},"none") |
"none" |
Notas
Sin otherwise, un valor que no está en la tabla es un error.
Con la tabla escrita dentro del SWITCH, solo se calcula lo necesario: los casos por orden hasta que uno coincide, y luego su resultado (así, un resultado que no se pudiera calcular, como una división entre 0, no causa ningún problema salvo que se elija). Una tabla guardada en una variable se calcula entera.
Las posiciones de una lista son números enteros desde 0; cualquier otro valor (1.5, -1, una cadena) da otherwise.
Véase también: Listas y diccionarios, ? :, == != ~=.