Sobes.tech
Junior

Go-da boş interfeys ilə nə təmsil oluna bilər?

sobes.tech Süni İntellekt

AI-dan cavab

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 qeyri-şərti olaraq 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ə dilimlər: []int, []string, [3]int
  • Xəritələr: map[string]int, map[int]interface{}
  • Struktur: 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
  • Kanallar: chan int, chan interface{}
  • Nil (null) referans tiplər üçün: 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 bazası ilə işləyən çərçivələrdə istifadə olunur.

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

// Dəyərləri hər hansı növ ola bilən Map

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.