Императивное vs декларативное?

Junior
421 просмотров
AFK Offer AI

Императивное программирование — описываешь как делать, шаг за шагом:

result := []int{}
for _, v := range nums {
    if v > 10 {
        result = append(result, v)
    }
}

Декларативное — описываешь что нужно получить:

SELECT * FROM nums WHERE value > 10;

Go — преимущественно императивный язык. SQL, HTML, CSS, Terraform — декларативные. Функциональное программирование (map/filter/reduce) — тоже декларативный стиль. На практике часто комбинируют: бизнес-логика императивно, инфраструктура декларативно (Docker Compose, Kubernetes YAML).

Следующий вопрос

Go — императивный или декларативный?