Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmFnCn 244 of 350 menu
◀ ▶

Последовательный вызов в Go

Давайте теперь будем передавать результат одной функции параметром в другую. В следующем примере мы сначала найдем квадрат числа 2, а затем квадрат этого результата:

package main import "fmt" func square(n int) int { return n * n } func main() { res := square(square(2)) fmt.Println(res) // выведет 16 }

Функции не обязательно должны быть одинаковыми. Пусть square возвращает квадрат числа, а cube возвращает куб числа. Возведем 2 в квадрат, а затем результат возведем в куб:

package main import "fmt" func square(n int) int { return n * n } func cube(n int) int { return n * n * n } func main() { res := cube(square(2)) fmt.Println(res) // выведет 64 }

Пусть теперь add возвращает сумму двух чисел. Найдем сумму квадрата числа 2 и квадрата числа 3:

package main import "fmt" func square(n int) int { return n * n } func add(a, b int) int { return a + b } func main() { res := add(square(2), square(3)) fmt.Println(res) // выведет 13 }

Внутренний вызов выполняется первым, его значение подставляется как аргумент внешнего. Скобки задают этот порядок.

Пусть у вас есть функция, возвращающая кубический корень из числа, и функция, округляющая дробь до трех знаков в дробной части. В файле нужен import "math":

func root(num float64) float64 { return math.Cbrt(num) } func norm(num float64) float64 { return math.Round(num*1000) / 1000 }

С помощью этих функций найдите кубический корень из числа 2 и округлите его до трех знаков в дробной части.

Напишите add и double, где double умножает число на 2. Выведите double(add(2, 3)).

Напишите add и triple, где triple умножает число на 3. Выведите triple от суммы 2 и 3.

Даны числа:

a := 4 b := 1

Напишите add и inc, где inc прибавляет 1. Выведите inc(add(a, b)).

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить