Palautusarvot Funktioista
Pyyhkäise näyttääksesi valikon
Tietojen välittäminen funktioihin on hyödyllistä, mutta yhtä tärkeää on kyetä palauttamaan tietoa funktioista. Tässä kohtaa return-avainsana on olennainen.
return-avainsanan avulla funktiot voivat palauttaa tietoa siihen kohtaan koodissa, jossa ne kutsuttiin. Tässä on syntaksi funktiolle, jossa käytetään return-lausetta:
func functionName(param_1 datatype, param_2 datatype, ...) return_datatype {
// Code
return data_to_be_returned
}
data_to_be_returned määrittää lausekkeen tai arvon, joka palautetaan. returned_datatype kuvaa palautettavan arvon odotettua tietotyyppiä. Tämä selkeytyy esimerkin avulla.
Seuraava ohjelma havainnollistaa return-lauseen käyttöä funktion avulla, joka laskee ja palauttaa kahden annetun kokonaisluvun summan ja tulon:
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)) }
Huomaa, että Println-funktion sisällä on myFunc(5, 7), ja yllä oleva ohjelma tuottaa tulosteen 47, joka on seurausta myFunc()-funktion suorittamista laskutoimituksista. Tämä osoittaa, että return-lauseke palauttaa tietyn arvon siihen kohtaan, jossa funktiota kutsuttiin. Lisäksi voimme tallentaa palautetun arvon muuttujaan:
index.go
12var returnedValue int = myFunc(5, 7) fmt.Println(returnedValue) // Outputs '47'
Huomio
Funktion ei tarvitse sisältää parametreja käyttääkseen
return-lausetta.
Funktio ei voi sisältää koodia return-lauseen jälkeen, ja yleensä Go ei salli useita return-lauseita:
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 }
On kuitenkin mahdollista käyttää return-lausetta ehtorakenteissa arvojen valikoivaan palauttamiseen:
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()) }
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme