Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Returvärden Från Funktioner | Funktioner
Introduktion till Golang

bookReturvä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

index.go

copy
1234567891011121314
package 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

index.go

copy
12
var 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

index.go

copy
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

index.go

copy
123456789101112131415
package 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()) }
question mark

Vad blir utdata från följande program?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

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

bookReturvä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

index.go

copy
1234567891011121314
package 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

index.go

copy
12
var 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

index.go

copy
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

index.go

copy
123456789101112131415
package 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()) }
question mark

Vad blir utdata från följande program?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4
some-alt