İmperativ və deklarativ proqramlaşdırma arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
İmperatif proqramlaşdırma nə etmək lazım olduğunu addım-addım göstərərək izah edir. Deklarativ proqramlaşdırma isə, nə edilməli olduğunu təsvir edir və həyata keçirmə detalları ilə məşğul olmur.
- İmperativ: Nəzarət axını və proqramın vəziyyət dəyişikliklərinə diqqət yetirir. Kompüterə, nə və necə keçid etməli olduğunu söyləyirsiniz.
- Deklarativ: Hesablama məntiqinə diqqət yetirir, nəzarət axını açıq şəkildə təsvir edilmir. Kompüterə, nə əldə etmək istədiyinizi söyləyirsiniz.
Nümunələr:
-
Slice-də cüt ədədləri tapmaq üçün imperativ yanaşma:
// Imperativ yanaşma func findEvenImperative(nums []int) []int { var evenNums []int // Nəticə üçün dəyişən elan edin for _, num := range nums { // Elementlər üzərində dövr if num%2 == 0 { // Şərti yoxlayın evenNums = append(evenNums, num) // Nəticəyə əlavə edin } } return evenNums // Nəticəni qaytarın } -
Deklarativ yanaşma (məsələn, SQL istifadə edərək, bu təbiətinə görə deklarativdir):
Golang əsasən imperativ olsa da, deklarativlik ideyası verilənlər bazasına sorğu ilə göstərilir:
-- Deklarativ yanaşma (SQL) SELECT * FROM numbers WHERE number % 2 = 0;Burada sadəcə olaraq,
numberscədvəlindənnumbercüt olan bütün sətirləri almaq istədiyimizi bəyan edirik, bazanın bunu necə etməli olduğunu (məsələn, hansı axtarış və ya filtr algoritmindən istifadə etməli) təsvir etmirik.
Əsas fərqlər cədvəldə qısaca:
| Xüsusiyyət | İmperativ proqramlaşdırma | Deklarativ proqramlaşdırma |
|---|---|---|
| Fokus | Nə etmək (addımlar ardıcıllığı) | Nə etmək (arzu olunan nəticə) |
| Nəzarət axını | Açıqlanmış və idarə olunan | Gizli və ya abstrakt |
| Vəziyyət | Aktiv şəkildə dəyişir | Daha az açıq şəkildə dəyişir və ya dəyişməz |
| Nümunələr | C, Java, Python (əsasən), Go | SQL, HTML, CSS, React (JSX) |
Go-da daha çox imperativ stil istifadə olunur, lakin deklarativlik anlayışları müəyyən yanaşmalarda, məsələn, məlumatların işlənməsi üçün kitabxanaların istifadəsində və ya konfiqurasiyaların təsvirində ortaya çıxır.