Передача Функцій як Аргументів
Ще одна корисна можливість — передача функцій як аргументів до інших функцій.
Нагадаємо, основний синтаксис функції з параметрами виглядає так:
func myFunc(param1 datatype, param2 datatype, ...) optional_return_type {
// Code
// Optional return statement
}
Для визначення типу даних параметра при передачі його у функцію використовується наступний синтаксис:
func(datatype, datatype, …) return_datatype
Ключове слово func
супроводжується переліком типів даних параметрів цієї функції у дужках, розділених комами. Додатково вказується тип даних, який повертає очікувана функція або набір функцій, якщо це застосовно.
Приклад допоможе краще проілюструвати цю концепцію:
index.go
12345678910111213141516package main import "fmt" func nTimes(n int, msg string) { for i := 0; i < n; i++ { fmt.Println(msg) } } func printFiveTimes(msg string, show func(int, string)) { show(5, "Hello World") } func main() { printFiveTimes("HelloWorld", nTimes) }
У наведеному вище прикладі функція з іменем nTimes
передається як аргумент до функції printFiveTimes
. Тип даних для параметра show
у визначенні функції printFiveTimes
— це func(int, string)
, що відповідає визначенню функції nTimes
, тобто nTimes(n int, msg string)
.
Тепер розглянемо приклад функції з повертаємим значенням:
index.go
1234567891011121314151617181920package main import "fmt" // A factorial is the product of all the numbers from 1 up till n // For-example factorial of 5 is 1x2x3x4x5, which is 120 func factorial(n int) int { var result int = 1; for i := 2; i <= n; i++ { result *= i } return result } func eval(n int, oper func(int) int) int { return oper(n) } func main() { fmt.Println(eval(5, factorial)) }
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 1.96
Передача Функцій як Аргументів
Свайпніть щоб показати меню
Ще одна корисна можливість — передача функцій як аргументів до інших функцій.
Нагадаємо, основний синтаксис функції з параметрами виглядає так:
func myFunc(param1 datatype, param2 datatype, ...) optional_return_type {
// Code
// Optional return statement
}
Для визначення типу даних параметра при передачі його у функцію використовується наступний синтаксис:
func(datatype, datatype, …) return_datatype
Ключове слово func
супроводжується переліком типів даних параметрів цієї функції у дужках, розділених комами. Додатково вказується тип даних, який повертає очікувана функція або набір функцій, якщо це застосовно.
Приклад допоможе краще проілюструвати цю концепцію:
index.go
12345678910111213141516package main import "fmt" func nTimes(n int, msg string) { for i := 0; i < n; i++ { fmt.Println(msg) } } func printFiveTimes(msg string, show func(int, string)) { show(5, "Hello World") } func main() { printFiveTimes("HelloWorld", nTimes) }
У наведеному вище прикладі функція з іменем nTimes
передається як аргумент до функції printFiveTimes
. Тип даних для параметра show
у визначенні функції printFiveTimes
— це func(int, string)
, що відповідає визначенню функції nTimes
, тобто nTimes(n int, msg string)
.
Тепер розглянемо приклад функції з повертаємим значенням:
index.go
1234567891011121314151617181920package main import "fmt" // A factorial is the product of all the numbers from 1 up till n // For-example factorial of 5 is 1x2x3x4x5, which is 120 func factorial(n int) int { var result int = 1; for i := 2; i <= n; i++ { result *= i } return result } func eval(n int, oper func(int) int) int { return oper(n) } func main() { fmt.Println(eval(5, factorial)) }
Дякуємо за ваш відгук!