go - 结构声明样式之间的语法/语义差异
问题描述
这两个声明有什么区别吗?
type Foo = struct {
F string `zoom:"1"`
}
和
type Foo struct {
F string `zoom:"1"`
}
他们都编译并且似乎工作相同。
解决方案
第二个,它是一个结构声明的例子。
type Foo struct {
F string `zoom:"1"`
}
第一个是 go1.9 新特性的使用示例:type aliases。
创建了一个新类型Foo
。它是匿名结构的别名。
type Foo = struct {
F string `zoom:"1"`
}
类型别名语法可用于定义结构。在上面的示例中,它生成了一个等价的结果,例如type Foo struct
.
但是,类型别名的最初目的是从定义的类型中创建一个别名。
在下面的示例中,创建了一个名为的新类型,它是structBar
的别名。Foo
type Foo struct {
F string `zoom:"1"`
}
type Bar = Foo
推荐阅读
- owl - Protege:等效类定义问题
- apache2 - 访问 apache 2.4 上的服务器信息时出现禁止 (403) 错误
- angular8 - 根据从 Angular 8 的下拉菜单中选择的选项更改对话框的内容
- php - 网站用户输入帖子到我电脑中的文件
- android - 如何在 TextView 中进行更改,同时在 EditView 中进行更改/写入?
- python - 如何在 Python Flask 中同时返回 html 模板和字符串
- postgresql - 带有 Spring Boot 和 PostgreSQL 的 Redis 数据库
- ansible - ansible playbook中的rsync文件保留所有权
- python - 发送 POST 请求时未定义错误 "name "true"
- php - PHP array_merge 结果在新行上不正确