首页 > 解决方案 > GoLang 中的内置类型(或未定义类型)是什么?

问题描述

规格 说:

如果以下条件之一适用,则值 x 可分配给 T 类型的变量(“x 可分配给 T”):

x 的类型 V 和 T 具有相同的基础类型,并且 V 或 T 中的至少一个不是定义的类型。


numeric typeuint8是一个定义的 type,因此使用上述规则,可分配性在以下代码中失败:

package main

type Point struct {
    x uint8
    y uint8
}

type Polar Point

var p Polar = Point{x: 1, y: 2}

func main() {

}

测试上述规则的 GoLang 中的未定义类型是什么?

标签: go

解决方案


未定义类型是没有分配给它们的标识符的类型。例如:

type S struct {
  A int
}

func main() {
  var s S
  // You can assign a literal struct with the same underlying type to a variable of type S
  s=struct{A int}{1}
}

上面的类型struct {A int}不是定义的类型。


推荐阅读