代码片段如下所示:
package main
import (
"fmt"
"encoding/binary"
"reflect"
)
const (
commandLen = 1
bufLen int = 4
)
func main(){
fmt.Printf("%v %v\n", reflect.TypeOf(commandLen), reflect.TypeOf(bufLen))
fmt.Printf("%d %d", binary.Size(commandLen), binary.Size(bufLen))
}
输出是:
int int
-1 -1
我认为由于 commandLen 和 bufLen 的类型是 int,并且从“在 golang 中编程”,int 应该是 int32 或 int64,这取决于实现,所以我认为 binary.Size() 应该返回一个值,而不是 (- 1)。
为什么 binary.Size() 返回 (-1)?