byte
в Go — это псевдоним для uint8 (беззнаковое 8-битное целое число), используемый для работы с бинарными данными и ASCII-символами. Это базовый строительный блок для обработки сырых данных и текста в кодировке ASCII/UTF-8.
var b byte = 65 // Эквивалентно uint8
var (
asciiByte byte = 'A' // ASCII символ
rawByte byte = 65 // Числовое значение
hexByte byte = 0x41 // Шестнадцатеричное
)
b := byte(72)
s := string(b) // "H"
data := []byte{72, 101, 108, 108, 111} // "Hello" в ASCII
file, _ := os.Open("data.bin")
defer file.Close()
buf := make([]byte, 1024)
n, _ := file.Read(buf)
fmt.Printf("Read %d bytes\n", n)
func ToUpperASCII(s string) string {
result := make([]byte, len(s))
for i := 0; i < len(s); i++ {
c := s[i]
if c >= 'a' && c <= 'z' {
c -= 32
}
result[i] = c
}
return string(result)
}
func CalculateMD5(data []byte) string {
hasher := md5.New()
hasher.Write(data)
return hex.EncodeToString(hasher.Sum(nil))
}
Переполнение:
var b byte = 255
b++ // 0 (переполнение без паники)
Преобразование типов:
i := 300
b := byte(i) // 44 (потеря старших битов)
Сравнение с rune:
var b byte = 'A'
var r rune = 'A'
fmt.Println(b == byte(r)) // true
byte
— это алиас для uint8 (1 байт)