How to make fmt.Scanln() read into a slice of integers
go
Solution
For example,
package main
import "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)
}
Input:
1 2 3
Output:
[1 2 3]
Problem
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.