Задача 1
Написать генератор целых чисел, который каждый раз создаёт число, на 1 больше предыдущего.
Ответ
Решение с использованием замыкания:
package main
import (
"fmt"
)
func getCounter() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
nextVal := getCounter()
fmt.Println(nextVal()) // 1
fmt.Println(nextVal()) // 2
fmt.Println(nextVal()) // 3
}Альтернативное решение с использованием каналов:
package main
import (
"fmt"
)
func getCounter() func() int {
ch := make(chan int)
go func() {
count := 0
for {
count++
ch <-…