Sobes.tech
Middle

Go-da strukturun interfeysə uyğunluğunu necə yoxlamaq olar?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində, strukturun interfeysə uyğunluğu dolayı yolla tərtib zamanı yoxlanılır. Əgər struktur, interfeys tərəfindən tələb olunan bütün metodları həyata keçirirsə, avtomatik olaraq həmin interfeysə uyğun sayılır. Aydın uyğunluğu göstərməyə ehtiyac yoxdur.

Uyğunluğu tərtib zamanı yoxlamaq üçün aşağıdakı üsullardan istifadə edə bilərsiniz:

  1. Strukturun interfeys tipində dəyişənə təyin edilməsi.
  2. Strukturun interfeys tipində arqument gözləyən funksiyaya ötürülməsi.

Təyin etmə ilə nümunə:

// Interfeysi təyin edirik
type MyInterface interface {
	DoSomething()
	GetValue() int
}

// Uyğun olması lazım olan strukturun təyini
type MyStruct struct {
	value int
}

// Struktur metodları, MyInterface-i həyata keçirir
func (s MyStruct) DoSomething() {
	// bəzi loqika
}

func (s MyStruct) GetValue() int {
	return s.value
}

// Uyğunluğu tərtib zamanı yoxlamaq:
// Struktur nümunəsini interfeys tipində dəyişənə təyin edirik.
// Əgər MyStruct, MyInterface-i həyata keçirməzsə, tərtibçi xəta verəcək.
var _ MyInterface = MyStruct{}

Funktsiyaya ötürmə nümunəsi:

// MyInterface tipində arqument qəbul edən funksiya
func Process(item MyInterface) {
	item.DoSomething()
	_ = item.GetValue() // dəyərdən istifadə
}

// Kodun başqa yerində:
// MyStruct nümunəsini yaradırıq
myInstance := MyStruct{value: 42}

// Struktur nümunəsini interfeys gözləyən funksiyaya ötürürük.
// Əgər MyStruct, MyInterface-i həyata keçirməzsə, tərtibçi xəta verəcək.
Process(myInstance)

Bu yanaşmalar, strukturun proqram işə başlamazdan əvvəl müəyyən edilmiş interfeysə uyğun olduğunu təmin edir ki, bu da Go dilində tip təhlükəsizliyinin vacib aspektidir.