go - 带 slice 结构的隐式类型

标签 go struct types slice

如果我有这样的文件:

package main
import "fmt"

type Language struct {
   Example []string
   Link []string
}

func main() {
   o := Language{
      {".go", "go.ps1"},
      {"golang.org", "go.dev"},
   }
   fmt.Println(o)
}
我得到这个结果:
missing type in composite literal
我发现我可以这样解决:
[]string{".go", "go.ps1"},
[]string{"golang.org", "go.dev"},
但这是严格要求的吗?我认为Go会知道每种类型
基于struct定义的属性。

最佳答案

这里的问题不是编译器不知道类型,而是复合文字的语法需要类型:
https://golang.org/ref/spec#Composite_literals
字符串数组文字是[]string{"a","b",","c"},而不是{"a","b","c"}

关于go - 带 slice 结构的隐式类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64091523/

相关文章:

postgresql - 将自定义类型数组插入 postgres

c# - List<struct> 与 List<class> 的性能

mysql - Doctrine 1.2 模型使用 Zend Framework 和 MySQL 5 将整数字段返回为字符串值

java - 从 Java 8 中的 Function 继承的命名具体接口(interface)

go - 如何在最新的 Go 周刊中比较两个函数的指针相等性?

go - 相当于 Go 的 Rails 控制台

go - Go 中的字节是否可以使用 nil 值?

c - 程序不想读取文件

c - 返回计算翻译的程序的结构

types - 使用不带标签的 Core.Std.List.fold_left