package main import( "fmt" "bytes" "encoding/binary" ) type Header struct { IsFull bool } func main(){ a:=make([]byte,1024,1024) for i:=0;i<1024;i++{ a[i]=byte(i) } var pi Header buf := bytes.NewReader(a) err := binary.Read(buf, binary.LittleEndian, &pi) fmt.Println(err) }но! если заменить IsFull с bool на любой числовой тип (int например), то все работает отлично. я даже решил, что это бага в стандартной библиотеке го. но вот что ответили на багтрекере:
This is working as expected. The encoding/binary package, as the documentation says, "implements simple translation between numbers and byte sequences." The type bool is not a number.