Returvärden Från Funktioner
Att kunna skicka data till funktioner är värdefullt, men det är lika fördelaktigt att hämta data från funktioner. Det är här nyckelordet return blir avgörande.
Nyckelordet return gör det möjligt för funktioner att skicka tillbaka data till den plats i koden där de anropades. Här är syntaxen för en funktion med en return-sats:
func functionName(param_1 datatype, param_2 datatype, ...) return_datatype {
// Code
return data_to_be_returned
}
data_to_be_returned är där vi anger ett uttryck eller ett värde. returned_datatype representerar den förväntade datatypen för det värde som ska returneras. Detta kommer att bli tydligare genom ett exempel.
Följande program illustrerar användningen av en return-sats via en funktion som beräknar och returnerar både summan och produkten av två givna heltalsargument:
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)) }
Observera att i funktionen Println har vi myFunc(5, 7), och programmet ovan ger utdata 47, vilket är resultatet av beräkningarna som utförs av funktionen myFunc(). Detta visar att return-satsen skickar specifik data tillbaka till platsen där funktionen anropades. Dessutom kan vi lagra den returnerade datan i en variabel:
index.go
12var returnedValue int = myFunc(5, 7) fmt.Println(returnedValue) // Outputs '47'
Obs
En funktion behöver inte parametrar för att inkludera ett
return-uttryck.
En funktion kan inte innehålla någon kod efter ett return-uttryck, och vanligtvis tillåter Go inte flera return-uttryck:
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 är dock möjligt att använda return-uttrycket inom villkorsstrukturer för att selektivt returnera värden:
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()) }
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 1.96
Returvärden Från Funktioner
Svep för att visa menyn
Att kunna skicka data till funktioner är värdefullt, men det är lika fördelaktigt att hämta data från funktioner. Det är här nyckelordet return blir avgörande.
Nyckelordet return gör det möjligt för funktioner att skicka tillbaka data till den plats i koden där de anropades. Här är syntaxen för en funktion med en return-sats:
func functionName(param_1 datatype, param_2 datatype, ...) return_datatype {
// Code
return data_to_be_returned
}
data_to_be_returned är där vi anger ett uttryck eller ett värde. returned_datatype representerar den förväntade datatypen för det värde som ska returneras. Detta kommer att bli tydligare genom ett exempel.
Följande program illustrerar användningen av en return-sats via en funktion som beräknar och returnerar både summan och produkten av två givna heltalsargument:
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)) }
Observera att i funktionen Println har vi myFunc(5, 7), och programmet ovan ger utdata 47, vilket är resultatet av beräkningarna som utförs av funktionen myFunc(). Detta visar att return-satsen skickar specifik data tillbaka till platsen där funktionen anropades. Dessutom kan vi lagra den returnerade datan i en variabel:
index.go
12var returnedValue int = myFunc(5, 7) fmt.Println(returnedValue) // Outputs '47'
Obs
En funktion behöver inte parametrar för att inkludera ett
return-uttryck.
En funktion kan inte innehålla någon kod efter ett return-uttryck, och vanligtvis tillåter Go inte flera return-uttryck:
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 är dock möjligt att använda return-uttrycket inom villkorsstrukturer för att selektivt returnera värden:
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()) }
Tack för dina kommentarer!