Sobes.tech
Junior

Hogyan lehet a Go nyelvben szövegekkel dolgozni?

sobes.tech MI

Válasz az MI-től

A Go nyelvben a sztringek változatlan byte-sorozatok. Ezek reprezentálhatnak UTF-8 szöveget vagy tetszőleges bináris adatokat.

Fő módszerek:

  • Bejelentés és inicializálás:

    var s1 string           // Üres sztring
    s2 := "szia"             // Sztring literálból való inicializálás
    s3 := `többsoros
    szöveg`             // Nyers sztring literál
    
  • A sztring hossza:

    len(s2) // Hossz byte-okban. A "szia" esetén 4.
    
  • Hozzáférés bájtokhoz:

    b := s2[0] // A bájt lekérése index alapján. Visszaadja 's' (UTF-8-ben).
    

    A közvetlen hozzáférés bájtokhoz nem garantálja a teljes UTF-8 karaktert.

  • Hozzáférés runákhoz (UTF-8 karakterekhez): A sztringeket runák szerint lehet iterálni:

    for index, runeValue := range s2 {
        fmt.Printf("Index: %d, Rúna: %c\n", index, runeValue)
    }
    

    Hossz runákban:

    utf8.RuneCountInString(s2) // Hossz runákban. A "szia" esetén 4.
    
  • Sztringek összefűzése:

    str1 := "hello"
    str2 := " világ"
    result := str1 + str2 // Összefűzés + operátorral
    

    Nagy számú sztring hatékony összefűzéséhez használja a strings.Builder-t.

    var sb strings.Builder
    sb.WriteString("hello")
    sb.WriteString(" ")
    sb.WriteString("világ")
    result := sb.String() // Az eredmény sztring
    
  • Átalakítás sztringek és bájt/runa szeletek között:

    byteslice := []byte(s2)   // Sztring bájtszeletté alakítása
    rs := []rune(s2)          // Sztring runák szeletté alakítása
    
    backToString := string(byteslice) // Bájt szelet sztringgé
    backToString = string(rs)         // Runa szelet sztringgé
    
  • strings csomag: Számos hasznos funkciót tartalmaz:

    • Contains, HasPrefix, HasSuffix
    • Index, LastIndex
    • Replace, ToUpper, ToLower, Trim, TrimSpace
    • Split, Join
  • strconv csomag: Sztringek más típusokra (számokra, logikai értékekre) való átalakítása és fordítva.

    i, err := strconv.Atoi("123") // Sztring int-re
    s := strconv.Itoa(456)        // Int sztringgé
    
  • Változtathatatlanság: Bármilyen művelet, amely úgy tűnik, módosít egy sztringet (pl. összefűzés), valójában új sztringet hoz létre. Ez fontos a teljesítmény szempontjából gyakori módosítások esetén. Ilyen esetekben jobb a []byte vagy a strings.Builder használata.