Sobes.tech
Junior — Middle

Dasturlash tilida metodlarsiz tuzilma va interfeys o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Go tilida, struktur (struct) — bu aniq ma'lumot turi bo'lib, u bir qator maydonlar (o'zgaruvchilar)ni o'z ichiga oladi. U ma'lumotlarning qanday tuzilganligini tavsiflaydi, lekin o'zi xususiyatga ega emas.

Interfeys (interface) Go tilida, bu interfeysga mos kelishi uchun turga taqdim etilishi kerak bo'lgan metodlar to'plamini tavsiflaydi. Interfeys ma'lumotlarni o'z ichiga olmaydi, faqat metodlarning imzolarini o'z ichiga oladi.

Asosiy farqlar:

  • Struktura — bu aniq amalga oshirish bo'lib, maydonlarga ega.
  • Interfeys — metodlar orqali xulq-atvorni tavsiflovchi abstraktsiya.
  • Bir struktura, agar unga mos metodlar bo'lsa, bir yoki bir nechta interfeyslarni amalga oshirishi mumkin.

Misol:

// Metodlarsiz struktura
type User struct {
    Name string
    Age  int
}

// Metod bilan interfeys
type Greeter interface {
    Greet() string
}

// Interfeysni amalga oshirish
func (u User) Greet() string {
    return "Hello, " + u.Name
}

Bu yerda, User — maydonlarga ega struktura, va Greeter — xulq-atvorni tavsiflovchi interfeys. Greet metodi bo'lmasa, User struktura Greeter interfeysini amalga oshirmaydi.