Sobes.tech
Junior

რა შეიძლება წარმოდგენილი იყოს ცარიელი ინტერფეისით Go-ში?

sobes.tech AI

პასუხი AI-სგან

Go dilində, boş interfeys interface{} hər hansı bir növün hər hansı bir dəyərini təmsil edə bilər.

Bu, hər hansı bir növün dolayı yolla boş interfeysi həyata keçirməsi ilə əlaqədardır, çünki heç bir metodun həyata keçirilməsi tələb olunmur.

Boş interfeys ilə təmsil oluna biləcək nümunələr:

  • Tam ədədlər: int, int32, int64
  • Onluq ədədlər: float32, float64
  • Sətir: string
  • Boolean dəyər: bool
  • Massivlər və slices: []int, []string, [3]int
  • Xəritələr: map[string]int, map[int]interface{}
  • Strukturlar: istifadəçi tərəfindən təyin olunan hər hansı struktur tipi
  • Göstəricilər: *int, *MyStruct
  • Funksiyalar: func(), func(string) int
  • Kanal: chan int, chan interface{}
  • Nil (null) üçün referens tiplər: nil

Bu, tərtib zamanı məlum olmayan növ dəyərləri saxlamaq və ya ötürmək üçün faydalıdır, məsələn, JSON, XML kimi kodlama/çözmə kitabxanalarında və ya verilənlər bazaları ilə işləyən çərçivələrdə istifadə olunur.

Map-də istifadə nümunəsi:

// Map, burada dəyərlər hər hansı növ ola bilər
data := make(map[string]interface{})
data["age"] = 30
data["name"] = "Alice"
data["isStudent"] = true
data["hobbies"] = []string{"reading", "hiking"}

// Dəyərlərə giriş və növ yoxlaması
age, ok := data["age"].(int)
if ok {
	// int ilə işləyirik
}

name, ok := data["name"].(string)
if ok {
	// string ilə işləyirik
}

interface{} ilə saxlanılan dəyərlərlə işləyərkən, əsas dəyərə çıxış etmək və onunla işləmək üçün növ təsdiqi (type assertion) və ya növ switch (type switch) etmək lazımdır.