Если вы имеете ввиду перевод на русский, то звучит это так ‘байт в строку’. Вообще если серьезно, то делается это так, как в примере:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package main import "fmt" var array = []byte{104, 0, 101, 0, 108, 0, 108, 0, 111, 0, 0, 0, 0, 0, 0, 0} func main() { new_array := make([]byte, 0, len(array)) for _, b := range array { if b == 0 { continue } new_array = append(new_array, b) } // 5 - ожидаемая длинна fmt.Println(len(new_array)) // строка без 0x00 fmt.Println(string(new_array)) } |
rupert Спасибо большое, за помощь. Не ожидал, что так быстро дождусь ответа. Теперь буду продолжать свои познания в Goland.
Кстати, а где узнать раскладку байтов, чтоб можно было увидеть, какой номер равняется букве? Может есть пример кода, который автоматически выписывает эти действия?
Да, это можно легко сделать, вот мой пример.
1 2 3 4 5 6 7 8 9 10 11 |
package main import "fmt" func main() { s := "abcdefghijklmnopqrstuvwxyz" fmt.Println("s:", []byte(s)) } |
Выводит в ответе:
1
|
s: [97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122] |
Можете изменять код, на свое усмотрение, даже в https://play.golang.org
Ага, спасибо. Здесь, я так понимаю, нужно менять:
1
|
s := "abcdefghijklmnopqrstuvwxyz" |
буквы в кавычках "". В итоге появляется их номер в выводимом ответе. Понятно!