github.com/maikovskiys/l1tasks@v0.0.0-20230927052451-6436d7687dc9/develop/dev15/main.go (about)

     1  package main
     2  
     3  import "fmt"
     4  
     5  /*
     6  К каким негативным последствиям может привести данный фрагмент кода, и как это исправить? Приведите корректный пример реализации.
     7  
     8  var justString string
     9  func someFunc() {
    10    v := createHugeString(1 << 10)
    11    justString = v[:100]
    12  }
    13  
    14  func main() {
    15    someFunc()
    16  }
    17  
    18  */
    19  var justString string //не надо использовать глобальные переменные
    20  
    21  func main() {
    22  	justString := `ko qwwyefhwehf8 832 jhu	u89U Q	89 ujH Dpqh hhjhdwh udhwudh   widjwndjshduwu 
    23  iewj di jwfijwpdhw8cuwj2837r832u rjefjwneknwejd dsjcuhv rhe
    24  оывмвосрыгурствс ввшсшвосоывосш лоыыовгмсцвосыоо ji ejwfljeofij8u j.`
    25  
    26  	hugeStringByte := []byte(justString)
    27  	justStringByte := hugeStringByte[:100]        // этот срез, для того, чтобы указать диапазон данных, например [23:28]
    28  	newSlice := make([]byte, len(justStringByte)) // создаем пустой срез с заданной длиной
    29  	copy(newSlice, hugeStringByte)                // копируем и возвращаемся из функции
    30  	fmt.Println(newSlice)
    31  
    32  }