私は、明示的な型変換なしで実際の型割り当てに名前付き型を許可していないと思った。golangは明示的な型変換なしで名前付きスライスタイプの割り当てを許可するのはなぜですか?
[]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
https://play.golang.org/p/oD5LwJl7an
参照。 http://stackoverflow.com/questions/19334542/why-can-i-type-alias-functions-and-use-them-without-casting – LibertyLocked
@LibertyLocked int64は名前付きの型ですか?その背後にある実際のタイプは何ですか? – woodings
バイト配列は既存の型 'byte'から構成されますが、' byte'自体は型リテラルであり、既存の型から構成されていません – LibertyLocked