package main
import (
"fmt"
)
type val []byte
func main() {
var a []byte = []byte{0x01,0x02}
var b val = a
fmt.Println(a)
fmt.Println(b)
}
o/p:[1 2] [1 2]
在这里,我的理解是 a,b 标识符共享相同的底层类型([]byte)。所以我们可以交换 b/w 2 个变量的值。
package main
import (
"fmt"
)
type abc string
func main() {
fm := fmt.Println
var second = "whowww"
var third abc = second //compile Error at this line 12
fm(second)
fm(third)
}
在第 12 行中,我无法分配变量。可以通过使用显式转换 T(x) 消除此错误,我想了解为什么我们不能进行隐式转换因为两个变量共享相同的基础类型,但我无法分配它。
有人可以解释这些背后的原因吗?
如果可能的话,可以为我提供关于变量、结构类型、函数参数之间类型转换的良好文档。