Sobes.tech
Junior

Go тилинде жолдор менен иштөө кандай?

sobes.tech AI

AIден жооп

Go тилиндеги саптар — бул өзгөрүлбөс байттардын үздүк тизмеги.

Негизги иштөө ыкмалары:

  1. Жасоо:

    // Саптардын литерлери
    s1 := "Hello, Go!"
    
    // Байткалар массивинен
    byteArray := []byte{'H', 'e', 'l', 'l', 'o'}
    s2 := string(byteArray)
    
  2. Конкатенация:

    s3 := "World"
    result := s1 + " " + s3 // + операторун колдонуу
    

    Көптөгөн конкатенациялар үчүн strings.Builder колдонуу натыйжалуу:

    import "strings"
    
    var sb strings.Builder
    sb.WriteString("Hello")
    sb.WriteString(", ")
    sb.WriteString("World!")
    result2 := sb.String()
    
  3. Узундук:

    • Байттарда:
      byteLength := len(s1)
      
    • Белгилерде (руна):
      runeLength := utf8.RuneCountInString(s1) // "unicode/utf8" импорт талап кылынат
      
  4. Белгилерге (руна) жетүү жана итерүү: Go саптары байттардан турат, бирок range аркылуу алар Unicode кодтук чекиттерине (руна) декоддошот.

    import "fmt"
    
    for index, runeValue := range s1 {
        fmt.Printf("Индекс: %d, Руна: %c, Тип: %T\n", index, runeValue, runeValue)
    }
    

    Түз жетүү индекстер боюнча байтты кайтарат, руна эмес:

    b := s1[0] // 'H' байтын кайтарат
    
  5. Өзгөртүү:

    • Байттардын массивине:
      byteSlice := []byte(s1)
      
    • Руна массивине:
      runeSlice := []rune(s1)
      
  6. strings пакети: Төмөнкү пайдалуу функцияларды камтыйт:

    • strings.Contains(s, substr): Подстрока бар-жогун текшерет.
    • strings.HasPrefix(s, prefix): Текст белгилүү префикстен башталат деп текшерет.
    • strings.HasSuffix(s, suffix): Текст белгилүү суффикстен аяктайт деп текшерет.
    • strings.Index(s, substr): Биринчи кездешүүнү издейт.
    • strings.ReplaceAll(s, old, new): Бардык алмаштырууларды жасайт.
    • strings.Split(s, sep): Текстти бөлөт.
    • strings.Join(a []string, sep string): Тизмедеги саптарды бириктирет.
    • strings.ToLower(s): Текстти кичинекей тамгаларга айлантат.
    • strings.ToUpper(s): Текстти чоң тамгаларга айлантат.
    • strings.TrimSpace(s): Бос орундарды алып салат.
  7. fmt пакети: Форматталган чыгуу жана окуу үчүн.

  8. strconv пакети: Тексттерди сандык түрлөргө жана тескерисинче айландыруу.

    import "strconv"
    
    i, err := strconv.Atoi("123") // Текстти бүтүн санга айландыруу
    s := strconv.Itoa(i)         // Бүтүн санды текстке айландыруу
    

Тексттердин өзгөрбөстүгү маанилүү жана бул операциялар (мисалы, кошуу же Replace) чын эле жаңы текст түзөт дегенди билдирет.