In this part of the series, we're going to look at Functions, and how they work in Go.
What is a Function?
A function is a block of code that performs a specific task. A function takes an input, performs some calculations on the input and generates an output.
There are two types of functions you'd make use of in Go. 1) User-defined and 2) Standard functions.
User-defined Functions
This type of function, we create ourselves to perform a specific task in a program.
Declaration
Here's the syntax to declare a function:
...
func sayHello() {
fmt.Println("Hello World!")
}
In the sample code above, we declared a function sayHello
which prints the string Hello World
when the function is called. Every function in Go, starts with the func
keyword followed by the function name (we'll talk about naming conventions in a later article), and parenthesis, and then a block wrapped in between curly braces ({ }
).
...
func greet(name string) {
fmt.Println("Hello " + name)
}
The example above is another function, this time it takes in a parameter. See parameters as pieces of information that further defines a Function. In the code above, we declared a function greet
which accepts a parameter name
of type string. Calling this function is straight and simple:
...
func main() {
greet("Francis Sunday")
}
func greet(name string) { ... }
PS: When using parameters, its required to explicitly define its type.
package main
import "fmt"
func split(number int) (int, int) {
x := number * 4 / 9
y := number - x
return
}
func main() {
x, y := split(100)
fmt.Println("%d + %d = 100", x, y)
}
In the code above, we declare a function split
which accepts a single integer as a parameter number
. The function takes a parameter of type int
, and returns two numbers of type int
that sums up to the input parameter.
Running the program you should get the following:
$ go run functions.go
44.44 + 55.56 = 100
In this article, we've looked at Functions in Go, how they help use organize repetitive tasks into smaller blocks of code we can reuse any where in our program. In a later article in this series, we'd explore more on Functions.
Feel free to leave a comment if I've missed something important.
Top comments (7)
Looks like on the last part you print out integers using %d, but your output looks like they were printed using %.2f
Other than that, great article! I love using Go, it’s a very fun language, and is surprisingly efficient as well!
Thanks Dean for pointing that out
What's with the empty looking return in
split()
?It’s not empty, in Go, the return type is after the function parameters. In this case,
split
returns (int, int), meaning it returns two integersI understand that
(int, int)
means that it returns two integers, but I'm not sure where you state which integers?It has me wondering because, in a function with more than two integers, what is returned?
Oh I see. Looks like the author forgot to put in the returned values, didn’t notice that!
Oh.. I meant to use that syntax since I only had two variables I wanted to return. Thanks for your observations anyways.