Sobes.tech
Junior — Middle

Կարո՞ղ է ստեղծել կառուցվածք կամ տվյալների տեսակ, որը նման է հավաքածուի, Go լեզվում։

sobes.tech AI

Պատասխան AI-ից

Go լեզվում չկան ներքին միավոր (set) տիպեր, բայց այն կարելի է իրականացնել օգտագործելով քարտեզ (map) ցանկալի տիպի բանալիներով և struct{} կամ bool տիպի արժեքներով։ struct{}-ի օգտագործումը խնայում է հիշողությունը, քանի որ դատարկ կառուցվածքը տեղ չի զբաղեցնում։

Օրինակ՝ տողերի միավորի իրականացման համար՝

// Ստեղծում ենք տողերի միավոր
set := make(map[string]struct{})

// Ավելացնում ենք տարր
set["apple"] = struct{}{}

// Ստուգում ենք, արդյոք տարրը կա
if _, exists := set["apple"]; exists {
    fmt.Println("Տարրը կա միավորի մեջ")
}

// Հեռացնում ենք տարր
delete(set, "apple")

Այսպիսով, բանալիներով և դատարկ արժեքներով քարտեզը արդյունավետ կերպով մոդելավորում է միավոր։