Функции
Простые функции
Создадим функцию для расчёта суммы целых чисел на отрезке.
func getNumbersSum(a int, b int) int {
var s int
s = 0
for i := a; i <= b; i++ {
s += i
}
return s
}
Вызываем функцию.
x := getNumbersSum(4, 8)
fmt.Println(x)
Возврат нескольких значений
Создадим функцию, которая рассчитывает остаток от деление, частное и сумму двух целых чисел.
func countModDivSum(a int, b int) (int, int, int) {
modValue := a % b
divValue := a / b
sumValue := a + b
return modValue, divValue, sumValue
}
Вызываем функцию.
x, y, z := countModDivSum(15, 6)
fmt.Println(x, y, z)
Передача массива в функцию
Напишем функцию для увеличения всех элементов массива в 2 раза.
func changeArrayElements(mass [5] int) [5] int {
for i := 0; i < len(mass); i++ {
mass[i] = mass[i] * 2
}
return mass
}
Создаём массив и инициализируем его элементы.
var arr[5] int
arr[0] = 10
arr[1] = 20
arr[2] = 30
arr[3] = 40
arr[4] = 50
Вызываем функцию.
arr = changeArrayElements(arr)
Процедурный тип параметров
Создадим две функции для реализации сложения и вычитания целых чисел.
func getPlus(a int, b int) int {
plus := a + b
return plus
}
func getMinus(a int, b int) int {
minus := a - b
return minus
}
Создадим функцию для работы с процедурным типом параметра.
func printResult(x int, y int, f func(aa int, bb int) int) {
fmt.Println("X:", x)
fmt.Println("Y:", y)
ans := f(x, y)
fmt.Println("Answer:", ans)
}
Вызываем функцию.
printResult(2, 3, getPlus)
printResult(15, 18, getMinus)
Использование рекурсии
Напишем рекурсивную функцию для вывода целых чисел на отрезке.
func writeNumbers(a int, b int) {
if a > b {
return
}
fmt.Println(a)
writeNumbers(a + 1, b)
}
Вызываем функцию.
writeNumbers(3, 7)
Использование глобальных переменных
Создадим две глобальные переменные и функции для увеличения данных переменных.
package main
import "fmt"
var a int
var b int
func incA() {
a++
}
func incB() {
b++
}
func main() {
a = 100
b = 100
incA()
incA()
incA()
incA()
incB()
incB()
fmt.Println("A:", a)
fmt.Println("B:", b)
}
Использование указателей
Напишем процедуру для расчёта суммы чисел.
func getSum(a int, b int, ans * int) {
*ans = a + b
}
Вызываем созданную процедуру.
var x int
x = 100
getSum(2, 3, &x)
fmt.Println(x)
Передача массива в функцию через структуру
Опишем структуру.
type ArrStructure struct {
arr [5] int
}
Напишем функцию для инициализации элементов массива.
func setElements(s * ArrStructure, x int) {
for i := 0; i < len(s.arr); i++ {
s.arr[i] = x
}
}
Вызываем написанную функцию.
var a ArrStructure
setElements(&a, 10)
fmt.Println(a.arr)
setElements(&a, 17)
fmt.Println(a.arr)
Last updated
Was this helpful?