package main
import "fmt"
func multipleRets() (int, int, int, int) {
return 11, 22, 33, 44
}
func main() {
// Q1
fmt.Println(multipleRets()) // This is fine.
fmt.Println(1, multipleRets()) // But this one errors.
// Q2
s1 := append([]int{}, []int{11, 22, 33, 44}...) // This is fine.
s2 := append([]int{}, multipleRets()) // But this one errors.
// Q3
lit1 := []int{11, 22, 33, 44} // This is fine.
lit2 := []int{multipleRets()} // But this one errors.
// Q4
fmt.Println(1, []int{11, 22, 33, 44}) // This is fine.
fmt.Println(1, []int{11, 22, 33, 44}...) // But this one errors.
}
В исходном коде выше есть 4 ошибки, все из которых жалуются на то, что несколько элементов не могут быть помещены в функцию / литерал.
Но, имея в виду другие примеры, я могу 'На самом деле нельзя найти причину, по которой эти ошибки можно считать ошибкой.
Разве они не должны быть в порядке?Что это значит, когда Go выдает ошибку вроде «множественное значение в контексте с одним значением»?
И как эти три пагубные точки работают, как это имеет смысл?Что именно делает ...
?