Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
package main
import "fmt"
func main() {
op := func(a, b int) int { return a + b }
r := op(2, 3)
op = func(a, b int) int { return a * b }
fmt.Println(r, op(2, 3))
}5 6
- Ждать
6 6:r := op(2, 3)сразу вызывает функцию и сохраняет число 5, а не саму функцию. - Ждать
5 5или ошибку компиляции: функция — значение, и переменной типаfunc(int, int) intможно присвоить другой литерал того же типа.
- Как анонимная функция становится замыканием над окружающими переменными?
- Каково нулевое значение переменной функционального типа и что будет при её вызове?