Returneringsværdier fra Funktioner
Det er værdifuldt at kunne videregive data til funktioner, men det er lige så fordelagtigt at kunne hente data fra funktioner. Her bliver nøgleordet return essentielt.
Nøgleordet return gør det muligt for funktioner at sende data tilbage til det sted i koden, hvor de blev kaldt. Her er syntaksen for en funktion med en return-sætning:
func functionName(param_1 datatype, param_2 datatype, ...) return_datatype {
// Code
return data_to_be_returned
}
data_to_be_returned angiver et udtryk eller en værdi. returned_datatype repræsenterer den forventede datatype for den værdi, der returneres. Dette vil blive tydeligere gennem et eksempel.
Det følgende program illustrerer implementeringen af en return-sætning via en funktion, der beregner og returnerer både summen og produktet af to givne heltalsargumenter:
index.go
1234567891011121314package main import "fmt" func myFunc(value_1 int, value_2 int) int { var sum int = value_1 + value_2 var prod int = value_1 * value_2 var result int = sum + prod return result } func main() { fmt.Println(myFunc(5, 7)) }
Bemærk, at inden for Println-funktionen har vi myFunc(5, 7), og programmet ovenfor giver outputtet 47, hvilket er resultatet af de beregninger, der udføres af funktionen myFunc(). Dette demonstrerer, at return-sætningen overfører specifikke data tilbage til det sted, hvor funktionen blev kaldt. Derudover kan vi gemme de returnerede data i en variabel:
index.go
12var returnedValue int = myFunc(5, 7) fmt.Println(returnedValue) // Outputs '47'
Bemærk
En funktion behøver ikke parametre for at inkludere en
return-sætning.
En funktion kan ikke indeholde kode efter en return-sætning, og typisk tillader Go ikke flere return-sætninger:
index.go
1234567891011// Function exits after the first return statement it encounters func exampleOne() int { return 1 return 2 // Will be ignored } // There cannot be any code after a return statement func exampleTwo() int { return 1 fmt.Println() // Error here }
Det er dog muligt at anvende return-sætningen inden for betingede strukturer for selektivt at returnere værdier:
index.go
123456789101112131415package main import "fmt" func myFunc() string { if(1 > 2) { return "1 is greater than 2" } else { return "2 is greater than 1" } } func main() { fmt.Println(myFunc()) }
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you show an example of a function using the return statement in Go?
What happens if I try to put code after a return statement in a Go function?
Can a Go function return multiple values?
Awesome!
Completion rate improved to 1.96
Returneringsværdier fra Funktioner
Stryg for at vise menuen
Det er værdifuldt at kunne videregive data til funktioner, men det er lige så fordelagtigt at kunne hente data fra funktioner. Her bliver nøgleordet return essentielt.
Nøgleordet return gør det muligt for funktioner at sende data tilbage til det sted i koden, hvor de blev kaldt. Her er syntaksen for en funktion med en return-sætning:
func functionName(param_1 datatype, param_2 datatype, ...) return_datatype {
// Code
return data_to_be_returned
}
data_to_be_returned angiver et udtryk eller en værdi. returned_datatype repræsenterer den forventede datatype for den værdi, der returneres. Dette vil blive tydeligere gennem et eksempel.
Det følgende program illustrerer implementeringen af en return-sætning via en funktion, der beregner og returnerer både summen og produktet af to givne heltalsargumenter:
index.go
1234567891011121314package main import "fmt" func myFunc(value_1 int, value_2 int) int { var sum int = value_1 + value_2 var prod int = value_1 * value_2 var result int = sum + prod return result } func main() { fmt.Println(myFunc(5, 7)) }
Bemærk, at inden for Println-funktionen har vi myFunc(5, 7), og programmet ovenfor giver outputtet 47, hvilket er resultatet af de beregninger, der udføres af funktionen myFunc(). Dette demonstrerer, at return-sætningen overfører specifikke data tilbage til det sted, hvor funktionen blev kaldt. Derudover kan vi gemme de returnerede data i en variabel:
index.go
12var returnedValue int = myFunc(5, 7) fmt.Println(returnedValue) // Outputs '47'
Bemærk
En funktion behøver ikke parametre for at inkludere en
return-sætning.
En funktion kan ikke indeholde kode efter en return-sætning, og typisk tillader Go ikke flere return-sætninger:
index.go
1234567891011// Function exits after the first return statement it encounters func exampleOne() int { return 1 return 2 // Will be ignored } // There cannot be any code after a return statement func exampleTwo() int { return 1 fmt.Println() // Error here }
Det er dog muligt at anvende return-sætningen inden for betingede strukturer for selektivt at returnere værdier:
index.go
123456789101112131415package main import "fmt" func myFunc() string { if(1 > 2) { return "1 is greater than 2" } else { return "2 is greater than 1" } } func main() { fmt.Println(myFunc()) }
Tak for dine kommentarer!