Överföra Data till Funktioner
Funktioner är inte särskilt användbara om vi inte kan komma åt data utanför dem på grund av skillnader i omfång. Vi kan dock skicka in data i funktioner med hjälp av 'parametrar'.
Parametrar definierar ett format för den data som en funktion förväntar sig att ta emot när den anropas eller exekveras.
I tidigare kapitel undersökte vi enkla funktioner utan parametrar. Vi kan dock deklarera en funktion med parametrar med följande syntax:
index.go
123func myFunc(param1 datatype, param2 datatype, ...) { // Code }
Varje parameter kan ha ett unikt namn följt av dess datatyp. Kommatecken separerar parametrarna. Parametrar följer samma namngivningskonventioner som variabler.
Här är ett exempel som visar användningen av funktioner med parametrar:
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) }
I programmet ovan ser du funktioner med en, två och tre parametrar. Det är fullt möjligt att skapa funktioner med så många parametrar som behövs.
Värden kan tilldelas dessa funktioner antingen direkt eller via variabler. Till exempel, i följande sats, anger vi direkt strängvärdet där en parameter förväntas:
index.go
1outThreeTimes("Hello World")
Alternativt kan vi lagra det i en strängvariabel och sedan skicka den variabeln till funktionen:
index.go
12var msg string = "Hello World" outThreeTimes(msg)
I uttalandet nedan observeras en kombination av båda tillvägagångssätten:
index.go
123var a int = 4 var b int = 7 product(a, b, 9)
Du kan välja den metod som passar dina behov bäst.
Notera
När variabler eller datavärden skickas in i en funktion kallas de argument. I fallet
product(a, b, 9)ära,boch9argument. Däremot, i funktionsdeklarationen, ärval1 int,val2 intochval3 intkända som parametrar.
Det är viktigt att skicka in data till funktioner i den ordning som definieras av parametrarna. Till exempel, i en funktion func myFunc(an int, b string), ska det första argumentet vara ett heltal och det andra en sträng; annan ordning leder till fel.
Inuti funktionen fungerar parametrar i praktiken som variabler som antar värdena från de skickade argumenten. Därför kommer deklaration av variabler med samma namn som någon funktionsparameter inom funktionens kropp att leda till fel.
index.go
123func myFunc(param int) { var param int = 1 // Error Here }
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
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
Överföra Data till Funktioner
Svep för att visa menyn
Funktioner är inte särskilt användbara om vi inte kan komma åt data utanför dem på grund av skillnader i omfång. Vi kan dock skicka in data i funktioner med hjälp av 'parametrar'.
Parametrar definierar ett format för den data som en funktion förväntar sig att ta emot när den anropas eller exekveras.
I tidigare kapitel undersökte vi enkla funktioner utan parametrar. Vi kan dock deklarera en funktion med parametrar med följande syntax:
index.go
123func myFunc(param1 datatype, param2 datatype, ...) { // Code }
Varje parameter kan ha ett unikt namn följt av dess datatyp. Kommatecken separerar parametrarna. Parametrar följer samma namngivningskonventioner som variabler.
Här är ett exempel som visar användningen av funktioner med parametrar:
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) }
I programmet ovan ser du funktioner med en, två och tre parametrar. Det är fullt möjligt att skapa funktioner med så många parametrar som behövs.
Värden kan tilldelas dessa funktioner antingen direkt eller via variabler. Till exempel, i följande sats, anger vi direkt strängvärdet där en parameter förväntas:
index.go
1outThreeTimes("Hello World")
Alternativt kan vi lagra det i en strängvariabel och sedan skicka den variabeln till funktionen:
index.go
12var msg string = "Hello World" outThreeTimes(msg)
I uttalandet nedan observeras en kombination av båda tillvägagångssätten:
index.go
123var a int = 4 var b int = 7 product(a, b, 9)
Du kan välja den metod som passar dina behov bäst.
Notera
När variabler eller datavärden skickas in i en funktion kallas de argument. I fallet
product(a, b, 9)ära,boch9argument. Däremot, i funktionsdeklarationen, ärval1 int,val2 intochval3 intkända som parametrar.
Det är viktigt att skicka in data till funktioner i den ordning som definieras av parametrarna. Till exempel, i en funktion func myFunc(an int, b string), ska det första argumentet vara ett heltal och det andra en sträng; annan ordning leder till fel.
Inuti funktionen fungerar parametrar i praktiken som variabler som antar värdena från de skickade argumenten. Därför kommer deklaration av variabler med samma namn som någon funktionsparameter inom funktionens kropp att leda till fel.
index.go
123func myFunc(param int) { var param int = 1 // Error Here }
Tack för dina kommentarer!