【发布时间】:2016-08-02 00:11:43
【问题描述】:
我认为 go 不允许任何命名类型在没有显式类型转换的情况下进行实际类型分配。
但是如果我将[]byte 分配给json.RawMessage,它如何编译而不出错?
var a json.RawMessage // type RawMessage []byte
var b []byte
a = b
var x time.Duration // type Duration int64
var y int64
x = y // ERROR: cannot use y (type int64) as type time.Duration in assignment
【问题讨论】:
-
因为 int 是命名类型,而 array 是未命名类型。见stackoverflow.com/questions/19334542/…
-
@LibertyLocked int64 是命名类型吗?它背后的实际类型是什么?
-
字节数组是由现有类型
byte组成的,而byte本身是一个类型文字,不是由任何现有类型组成的
标签: go