Datan Välittäminen Funktioihin
Funktiot eivät ole kovin hyödyllisiä, jos emme voi käyttää niissä ulkopuolista dataa johtuen eri näkyvyysalueista. Voimme kuitenkin välittää dataa funktioihin käyttämällä 'parametreja'.
Parametrit määrittelevät muodon datalle, jonka funktion odotetaan vastaanottavan, kun sitä kutsutaan tai suoritetaan.
Edellisissä luvuissa tarkastelimme yksinkertaisia funktioita ilman parametreja. Voimme kuitenkin määritellä funktion parametreilla seuraavalla syntaksilla:
index.go
123func myFunc(param1 datatype, param2 datatype, ...) { // Code }
Jokaisella parametrilla voi olla yksilöllinen nimi, jota seuraa sen tietotyyppi. Pilkut erottavat parametrit toisistaan. Parametrit noudattavat samoja nimeämiskäytäntöjä kuin muuttujat.
Tässä on esimerkki, joka havainnollistaa funktioiden käyttöä parametrien kanssa:
index.go
12345678910111213141516171819202122package main import "fmt" func outThreeTimes(message string) { fmt.Println(message) fmt.Println(message) fmt.Println(message) } func sum(value1 int, value2 int) { fmt.Println("Sum:", value1 + value2) } func product(val1 int, val2 int, val3 int) { fmt.Println("Product:", val1 * val2 * val3) } func main() { outThreeTimes("Hello World") sum(17, 25) product(4, 7, 9) }
Yllä olevassa ohjelmassa huomaat funktioita, joilla on yksi, kaksi tai kolme parametria. On täysin mahdollista luoda funktioita, joilla on niin monta parametria kuin tarvitaan.
Arvot voidaan välittää näihin funktioihin joko suoraan tai muuttujien kautta. Esimerkiksi seuraavassa lauseessa annamme merkkijonon arvon suoraan siihen kohtaan, jossa parametriä odotetaan:
index.go
1outThreeTimes("Hello World")
Vaihtoehtoisesti voimme tallentaa sen merkkijonomuuttujaan ja välittää tämän muuttujan funktiolle:
index.go
12var msg string = "Hello World" outThreeTimes(msg)
Alla olevassa lauseessa havaitaan molempien lähestymistapojen yhdistelmä:
index.go
123var a int = 4 var b int = 7 product(a, b, 9)
Voit valita tarpeisiisi parhaiten sopivan menetelmän.
Huomautus
Kun muuttujia tai tietoja välitetään funktiolle, niitä kutsutaan argumenteiksi. Esimerkiksi
product(a, b, 9)-kutsussaa,bja9ovat argumentteja. Vastaavasti funktion määrittelyssäval1 int,val2 intjaval3 inttunnetaan parametreina.
On tärkeää välittää tiedot funktioihin siinä järjestyksessä kuin parametrit on määritelty. Esimerkiksi funktiossa func myFunc(an int, b string) ensimmäisen argumentin tulee olla kokonaisluku ja toisen merkkijono; muu järjestys aiheuttaa virheitä.
Funktion sisällä parametrit toimivat käytännössä muuttujina, jotka saavat välitettyjen argumenttien arvot. Tämän vuoksi muuttujien määrittely samalla nimellä kuin jokin funktion parametri funktion rungossa johtaa virheisiin.
index.go
123func myFunc(param int) { var param int = 1 // Error Here }
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain the difference between parameters and arguments again?
Why does the order of arguments matter when calling a function?
What happens if I use the same name for a parameter and a variable inside the function?
Awesome!
Completion rate improved to 1.96
Datan Välittäminen Funktioihin
Pyyhkäise näyttääksesi valikon
Funktiot eivät ole kovin hyödyllisiä, jos emme voi käyttää niissä ulkopuolista dataa johtuen eri näkyvyysalueista. Voimme kuitenkin välittää dataa funktioihin käyttämällä 'parametreja'.
Parametrit määrittelevät muodon datalle, jonka funktion odotetaan vastaanottavan, kun sitä kutsutaan tai suoritetaan.
Edellisissä luvuissa tarkastelimme yksinkertaisia funktioita ilman parametreja. Voimme kuitenkin määritellä funktion parametreilla seuraavalla syntaksilla:
index.go
123func myFunc(param1 datatype, param2 datatype, ...) { // Code }
Jokaisella parametrilla voi olla yksilöllinen nimi, jota seuraa sen tietotyyppi. Pilkut erottavat parametrit toisistaan. Parametrit noudattavat samoja nimeämiskäytäntöjä kuin muuttujat.
Tässä on esimerkki, joka havainnollistaa funktioiden käyttöä parametrien kanssa:
index.go
12345678910111213141516171819202122package main import "fmt" func outThreeTimes(message string) { fmt.Println(message) fmt.Println(message) fmt.Println(message) } func sum(value1 int, value2 int) { fmt.Println("Sum:", value1 + value2) } func product(val1 int, val2 int, val3 int) { fmt.Println("Product:", val1 * val2 * val3) } func main() { outThreeTimes("Hello World") sum(17, 25) product(4, 7, 9) }
Yllä olevassa ohjelmassa huomaat funktioita, joilla on yksi, kaksi tai kolme parametria. On täysin mahdollista luoda funktioita, joilla on niin monta parametria kuin tarvitaan.
Arvot voidaan välittää näihin funktioihin joko suoraan tai muuttujien kautta. Esimerkiksi seuraavassa lauseessa annamme merkkijonon arvon suoraan siihen kohtaan, jossa parametriä odotetaan:
index.go
1outThreeTimes("Hello World")
Vaihtoehtoisesti voimme tallentaa sen merkkijonomuuttujaan ja välittää tämän muuttujan funktiolle:
index.go
12var msg string = "Hello World" outThreeTimes(msg)
Alla olevassa lauseessa havaitaan molempien lähestymistapojen yhdistelmä:
index.go
123var a int = 4 var b int = 7 product(a, b, 9)
Voit valita tarpeisiisi parhaiten sopivan menetelmän.
Huomautus
Kun muuttujia tai tietoja välitetään funktiolle, niitä kutsutaan argumenteiksi. Esimerkiksi
product(a, b, 9)-kutsussaa,bja9ovat argumentteja. Vastaavasti funktion määrittelyssäval1 int,val2 intjaval3 inttunnetaan parametreina.
On tärkeää välittää tiedot funktioihin siinä järjestyksessä kuin parametrit on määritelty. Esimerkiksi funktiossa func myFunc(an int, b string) ensimmäisen argumentin tulee olla kokonaisluku ja toisen merkkijono; muu järjestys aiheuttaa virheitä.
Funktion sisällä parametrit toimivat käytännössä muuttujina, jotka saavat välitettyjen argumenttien arvot. Tämän vuoksi muuttujien määrittely samalla nimellä kuin jokin funktion parametri funktion rungossa johtaa virheisiin.
index.go
123func myFunc(param int) { var param int = 1 // Error Here }
Kiitos palautteestasi!