Restituire più valori
Fa parte della sezione Fondamenti del percorso GO di Coddy. Lezione 56 di 109.
Le funzioni Go possono restituire più valori contemporaneamente, il che è estremamente utile per restituire sia i risultati sia le informazioni sugli errori.
Crea una funzione che restituisca sia il quoziente sia il resto:
func divide(a, b int) (int, int) {
quotient := a / b
remainder := a % b
return quotient, remainder
}
func main() {
q, r := divide(7, 3)
fmt.Println("7 ÷ 3 =", q, "with remainder", r)
}Quando esegui questo programma, produce:
7 ÷ 3 = 2 with remainder 1La funzione restituisce due valori separati da virgole e li acquisisci entrambi usando più variabili nell'assegnazione.
Se ti servono solo alcuni dei valori restituiti, puoi usare l'identificatore vuoto _ per ignorare quelli che non ti servono:
q, _ := divide(7, 3) // ignora il resto
fmt.Println("Quotient:", q)Usare _ dice a Go di scartare quel valore restituito. Questo è necessario quando non usi un valore, poiché Go non consente variabili inutilizzate.
Sfida
PrincipianteIn questa sfida, ti eserciterai a restituire più valori da una funzione in Go.
Abbiamo una funzione chiamata getPersonInfo che dovrebbe restituire il nome, l’età di una persona e indicare se è uno studente. Il tuo compito è completare la funzione aggiungendo l’istruzione return appropriata.
Provalo tu
package main
import "fmt"
// Questa funzione deve restituire tre valori: name, age e isStudent
func getPersonInfo() (string, int, bool) {
// Le variabili sono già definite
name := "Alex"
age := 25
isStudent := true
// TODO: restituisci tutti e tre i valori (name, age, isStudent)
}
func main() {
// Chiama la funzione e memorizza i valori restituiti
name, age, isStudent := getPersonInfo()
// Stampa i valori
fmt.Printf("Name: %s\n", name)
fmt.Printf("Age: %d\n", age)
fmt.Printf("Is Student: %t\n", isStudent)
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori di confronto e logici
Operatori di confronto - Parte 1Operatori di confronto - Parte 2Operatore AND logicoOperatore OR logicoOperatore NOT logicoNozioni di base sulla precedenza degli operatoriRiepilogo - Eseguire confronti7Flusso di controllo: cicli
Come funziona il ciclo `for`Ciclo `for` - baseCiclo `for` - solo condizioneLa parola chiave `break`La parola chiave `continue`Cicli annidatiRiepilogo - ripetere le azioni2Variabili e tipi di dati di base
Che cos'è una variabileInferenza del tipo con `:=`Numeri interi (int)Numeri in virgola mobileValori booleaniStringheValori zeroCostantiConvenzioni di denominazioneRiepilogo: variabili e tipi5Input/output di base
Output formattatoVerbi di formattazioneVisualizzazione dei tipiAcquisire input di base dall’utenteRiepilogo - Input e output8Funzioni
Capire le funzioniDichiarare una funzioneChiamare le funzioniParametri delle funzioniRestituire un singolo valoreRestituire più valoriValori restituiti con nomeFondamenti dell'ambito delle funzioniRiepilogo - Creare codice riutilizzabile3Operatori di base
Operatori aritmeticiOperatore di divisioneL'operatore moduloOperatore di assegnazioneOperatori di assegnazione compostaIncremento e decrementoRiepilogo - Calcoli6Flusso di controllo: condizioni
L'istruzione `if`La parola chiave `else`La parola chiave `else if`Ombreggiamento delle variabili in `if`Inizializzare le variabiliL'istruzione `switch``switch` con espressioni`switch` senza espressioneLa parola chiave `fallthrough`Riepilogo: prendere decisioni9Puntatori
Che cos’è un puntatore?Dichiarare variabili puntatoreL’operatore indirizzoDereferenziare i puntatoriUsare i puntatori nelle funzioniPuntatori nilRipasso - Capire i puntatori12Tipi compositi: mappe
Introduzione alle mappeDichiarare i letterali delle mappeCreare mappe con `make`Aggiungere e aggiornare coppie chiave-valoreAccedere ai valori delle mappeVerificare l'esistenza di una chiaveEliminare elementi dalle mappeLunghezza delle mappeIterare sulle mappeRiepilogo - Archiviazione chiave-valoreEsercitati da solo: Compilatore Go online