В Go функции — это first-class values, их можно присваивать переменным, передавать как аргументы, возвращать из других функций. Тип функции определяется её сигнатурой: func(int) string. Это основа для callback-ов, middleware, и стратегий. Замыкания (closures) захватывают переменные из окружающего скоупа, что делает function values очень гибкими.