Sobes.tech
Junior — Middle

Ինչպե՞ս կարելի է հեշ-թերթից հանվել դասավորված արժեքները ըստ նույնականացնողի։

sobes.tech AI

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

Go-ում հեշ-թերթը իրականացվում է map տիպի միջոցով, որը չի երաշխավորում տարրերի կարգը կրկնակի անցուդարձի ժամանակ: Որպեսզի ստանաք կոդավորված արժեքներ ըստ բանալիի (օրինակ՝ նույնականացման համար), պետք է՝

  1. Բոլոր բանալիները հանեք քարտեզից՝ սլայսի մեջ:
  2. Սլայսը դասավորեք sort ֆունկցիայի միջոցով:
  3. Դասավորված բանալիներով անցեք և ստացեք համապատասխան արժեքները քարտեզից:

Օրինակ՝

package main

import (
    "fmt"
    "sort"
)

func main() {
    data := map[int]string{
        3: "երեք",
        1: "մեկ",
        2: "երկու",
    }

    // Բանալիների հանում
    keys := make([]int, 0, len(data))
    for k := range data {
        keys = append(keys, k)
    }

    // Բանալիների դասավորություն
    sort.Ints(keys)

    // Դասավորված բանալիներով անցում
    for _, k := range keys {
        fmt.Printf("%d: %s\n", k, data[k])
    }
}

Այսպիսով, դուք կստանաք արժեքներ՝ դասավորված ըստ նույնականացման (բանալի)։