-
萧十郎
例如,package mainimport "fmt"func intScanln(n int) ([]int, error) { x := make([]int, n) y := make([]interface{}, len(x)) for i := range x { y[i] = &x[i] } n, err := fmt.Scanln(y...) x = x[:n] return x, err}func main() { x, err := intScanln(3) if err != nil { fmt.Println(err) return } fmt.Printf("%v\n", x)}输入:1 2 3输出:[1 2 3]
-
阿晨1998
惯用的 Go 将是:func read(n int) ([]int, error) { in := make([]int, n) for i := range in { _, err := fmt.Scan(&in[i]) if err != nil { return in[:i], err } } return in, nil}interface{}没什么意思。如果非必要,请不要使用它。
-
慕哥6287543
我认为正确的版本应该是X := make([]int, 3)fmt.Scanln(&X[0], &X[1], &X[2])fmt.Printf("%v\n", X)