Question: I have a line containing 3 numbers that I want to read from stdin with fmt.Scanln() but this code won't work: 

```
X := make([]int, 3)
fmt.Scanln(X...)
fmt.Printf("%v\n", X)

```

I get this error message: 

```
cannot use X (type []int) as type []interface {} in function argument

```

I don't get it.

Answer: 
Idiomatic Go would be:

```
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{}` means nothing. Please don't use it if you don't have to.
I think the the correct version should be

```
X := make([]int, 3)
fmt.Scanln(&X[0], &X[1], &X[2])
fmt.Printf("%v\n", X)

```