

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# switch
<a name="switch-function"></a>

`switch` confronta una *condition-expression* con le etichette letterali, all'interno di un insieme di abbinamenti di etichette letterali e *return-expression*. Quindi restituisce la *return-expression* corrispondente alla prima etichetta letterale uguale alla *condition-expression*. Se nessuna etichetta è uguale a *condition-expression*, `switch` restitusce la *default-expression*. Ogni *return-expression* e *default-expression* deve avere lo stesso tipo di dati.

## Sintassi
<a name="switch-function-syntax"></a>

```
switch(condition-expression, label-1, return-expression-1 [, label-n, return-expression-n ...], 
        default-expression)
```

## Arguments (Argomenti)
<a name="switch-function-arguments"></a>

`switch` richiede uno o più abbinamenti di espressioni *if*,*then* e una espressione per l'argomento *else*. 

 *espressione di condizione*   
L'espressione da confrontare con i valori letterali dell'etichetta. Può trattarsi di un nome di campo come `address`, un valore letterale come `Unknown` o un'altra funzione come `toString(salesAmount)`. 

 *etichetta*   
Il letterale da confrontare con l'argomento di *condition-expression*, tutti i letterali devono avere lo stesso tipo di dati dell'argomento *condition-expression*. `switch` accetta un massimo di 5.000 etichette. 

 *return-expression*   
L'espressione da restituire se il valore della sua etichetta è uguale al valore di *condition-expression*. Può trattarsi di un nome di campo come `address`, un valore letterale come `Unknown` o un'altra funzione come `toString(salesAmount)`. Tutti gli argomenti *return-expression* devono avere lo stesso tipo di dati di *default-expression*.

 *default-expression*   
L'espressione da restituire se nessun valore di qualsiasi argomento dell'etichetta è uguale al valore di *condition-expression*. Può trattarsi di un nome di campo come `address`, un valore letterale come `Unknown` o un'altra funzione come `toString(salesAmount)`. Tutti gli argomenti *default-expression* devono avere lo stesso tipo di dati di *return-expression*.

## Tipo restituito
<a name="switch-function-return-type"></a>

`switch` restituisce un valore dello stesso tipo di dati dei valori in *return-expression*. Tutti i dati restituiti da *return-expression* e *default-expression* devono essere dello stesso tipo o essere convertiti nello stesso tipo. 

## Esempi generali
<a name="switch-function-example"></a>

L'esempio seguente restituisce il Regione AWS codice del nome della regione di input. 

```
switch(region_name, 
               "US East (N. Virginia)", "us-east-1", 
               "Europe (Ireland)", "eu-west-1", 
               "US West (N. California)", "us-west-1", 
               "other regions")
```

I seguenti sono i valori di campo forniti.

```
"US East (N. Virginia)"
        "US West (N. California)"
        "Asia Pacific (Tokyo)"
```

Per questi valori di campo vengono restituiti i seguenti valori.

```
"us-east-1"
        "us-west-1"
        "other regions"
```

## Uso di switch per sostituire `ifelse`
<a name="switch-instead-of-ifelse"></a>

Il seguente caso d'uso `ifelse` è equivalente all'esempio precedente, per `ifelse` che valutare se i valori di un campo sono uguali a valori letterali diversi; l'uso di `switch`invece è una scelta migliore.

```
ifelse(region_name = "US East (N. Virginia)", "us-east-1", 
               region_name = "Europe (Ireland)", "eu-west-1", 
               region_name = "US West (N. California)", "us-west-1", 
               "other regions")
```

## Espressione come valore restituito
<a name="switch-expression-as-return-value"></a>

L'esempio seguente utilizza le espressioni in *return-expressions*:

```
switch({origin_city_name}, 
               "Albany, NY", {arr_delay} + 20, 
               "Alexandria, LA", {arr_delay} - 10,
               "New York, NY", {arr_delay} * 2, 
               {arr_delay})
```

L'esempio precedente modifica il tempo di ritardo previsto per ogni volo da una città particolare.

![\[Un'immagine dei risultati dell'esempio della funzione, sotto forma di tabella.\]](http://docs.aws.amazon.com/it_it/quick/latest/userguide/images/switch-function-example.png)
