go - 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 中的未定义类型是什么?
解决方案
未定义类型是没有分配给它们的标识符的类型。例如:
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}
不是定义的类型。
推荐阅读
- ios - 如何在 Swift 中基于图像创建进度条
- sql - 如何排除 sql 子查询的计数返回 0 的行
- types - 如何在保留其签名的同时将一个模块包含在另一个模块中?
- lua - 如何在 Lua 中压缩 3 维数组?
- mysql - 断开连接后调用pymysql executemany时超过锁定等待超时
- php - 如何将时间前功能限制在 12 个月以下并发布一年或更晚的实际日期?
- javascript - 如何在不刷新浮动 javascript 的情况下重定向网页?
- c++ - 如何在运行时获得阶乘....阶乘?
- kubernetes - 尝试将 prometheus-operator 和服务监视器收集的自定义指标推送到 AWS CloudWatch
- deep-learning - 理解 Pytorch 中的渐变