Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Datan Välittäminen Funktioihin | Funktiot
Johdatus Golangiin

bookDatan 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

index.go

copy
123
func 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

index.go

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

index.go

copy
1
outThreeTimes("Hello World")

Vaihtoehtoisesti voimme tallentaa sen merkkijonomuuttujaan ja välittää tämän muuttujan funktiolle:

index.go

index.go

copy
12
var msg string = "Hello World" outThreeTimes(msg)

Alla olevassa lauseessa havaitaan molempien lähestymistapojen yhdistelmä:

index.go

index.go

copy
123
var 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)-kutsussa a, b ja 9 ovat argumentteja. Vastaavasti funktion määrittelyssä val1 int, val2 int ja val3 int tunnetaan 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

index.go

copy
123
func myFunc(param int) { var param int = 1 // Error Here }
question mark

Valitse oikea koodi productTable-funktion kutsumiseksi main-funktion sisällä.

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

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

bookDatan 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

index.go

copy
123
func 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

index.go

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

index.go

copy
1
outThreeTimes("Hello World")

Vaihtoehtoisesti voimme tallentaa sen merkkijonomuuttujaan ja välittää tämän muuttujan funktiolle:

index.go

index.go

copy
12
var msg string = "Hello World" outThreeTimes(msg)

Alla olevassa lauseessa havaitaan molempien lähestymistapojen yhdistelmä:

index.go

index.go

copy
123
var 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)-kutsussa a, b ja 9 ovat argumentteja. Vastaavasti funktion määrittelyssä val1 int, val2 int ja val3 int tunnetaan 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

index.go

copy
123
func myFunc(param int) { var param int = 1 // Error Here }
question mark

Valitse oikea koodi productTable-funktion kutsumiseksi main-funktion sisällä.

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 3
some-alt