Асинхронное программирование и сигнатуры функций в Go (Golang): примеры и концепции

  1. Асинхронное программирование в Go:
    Go предоставляет встроенные функции для поддержки асинхронного программирования с использованием горутин и каналов. Вот пример запуска горутины для асинхронного выполнения задачи:
package main
import (
    "fmt"
    "time"
)
func task() {
    // Simulating some work
    time.Sleep(2 * time.Second)
    fmt.Println("Task completed")
}
func main() {
    fmt.Println("Main started")
    go task() // Launch the task asynchronously
    fmt.Println("Main continues")
    // Wait for the task to complete
    time.Sleep(3 * time.Second)
    fmt.Println("Main finished")
}

В этом примере функция task()выполняется одновременно как горутина, в то время как основная программа продолжает свое выполнение. Программа ожидает завершения задачи с помощью вызова time.Sleep().

  1. Сигнатуры функций в Go:
    Go использует сигнатуры функций для определения типов и порядка параметров, а также типа возвращаемого значения функции. Вот пример функции с сигнатурой:
package main
import "fmt"
func add(a, b int) int {
    return a + b
}
func main() {
    result := add(5, 3)
    fmt.Println("Result:", result)
}

В этом примере функция add()принимает два целочисленных параметра (aи b) и возвращает их сумму в виде целого числа.