Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Передача Функцій як Аргументів | Функції
Вступ до Golang

bookПередача Функцій як Аргументів

Ще одна корисна можливість — передача функцій як аргументів до інших функцій.

Нагадаємо, основний синтаксис функції з параметрами виглядає так:

func myFunc(param1 datatype, param2 datatype, ...) optional_return_type {
      // Code
      // Optional return statement
}

Для визначення типу даних параметра при передачі його у функцію використовується наступний синтаксис:

func(datatype, datatype, …) return_datatype

Ключове слово func супроводжується переліком типів даних параметрів цієї функції у дужках, розділених комами. Додатково вказується тип даних, який повертає очікувана функція або набір функцій, якщо це застосовно.

Приклад допоможе краще проілюструвати цю концепцію:

index.go

index.go

copy
12345678910111213141516
package 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

index.go

copy
1234567891011121314151617181920
package 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)) }
question mark

Яким буде вивід наступної програми:

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 6

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 1.96

bookПередача Функцій як Аргументів

Свайпніть щоб показати меню

Ще одна корисна можливість — передача функцій як аргументів до інших функцій.

Нагадаємо, основний синтаксис функції з параметрами виглядає так:

func myFunc(param1 datatype, param2 datatype, ...) optional_return_type {
      // Code
      // Optional return statement
}

Для визначення типу даних параметра при передачі його у функцію використовується наступний синтаксис:

func(datatype, datatype, …) return_datatype

Ключове слово func супроводжується переліком типів даних параметрів цієї функції у дужках, розділених комами. Додатково вказується тип даних, який повертає очікувана функція або набір функцій, якщо це застосовно.

Приклад допоможе краще проілюструвати цю концепцію:

index.go

index.go

copy
12345678910111213141516
package 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

index.go

copy
1234567891011121314151617181920
package 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)) }
question mark

Яким буде вивід наступної програми:

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 6
some-alt