我理解如何在go中使用多个返回值。我进一步理解,在大多数情况下,其中一个返回是一个错误,因此忽略返回的值可能很危险。
有没有办法忽略struct initializer中的值?下面的示例不起作用,因为Split返回两个值,但我只对第一个值感兴趣。我当然可以创建一个变量但是......
someFile := "test/filename.ext"
contrivedStruct := []struct{
parentDir string
}{
{ parentDir: filepath.Split(someFile) },
}
答案 0 :(得分:2)
在Go中初始化成员时,不可能只使用其中一个返回值。
使用变量清楚地表达了您的意图。
有时感觉它可能更简洁,但Go作者更喜欢可读性而不是简洁。
或者,使用包装函数。有几个必须'标准库中的包装函数,如:template.Must。
func first(args ...string) string {
return args[0]
}
对于您的特定示例,拆分路径,请参阅filepath.Base或filepath.Dir。
答案 1 :(得分:1)
不,没有办法跳过结构初始值设定项中的一个返回值。