fmt.Scan/Scanf/Scanlnのユーザー入力に対するテスト方法を教えてください。Goでのユーザー入力に対するテストの書き方
たとえば、関数入力がSTDINの "4 5 \ n"と "1 2 3 4 \ n"を受け入れ、n == 5とarray == [1、2、3、 4]。
package main
import (
"fmt"
)
// input gets an array from the user.
func input() (m int, array []int) {
fmt.Print("Enter the size of the array, n, and the difference, m: ")
var n int
_, err := fmt.Scanf("%d %d", &n, &m)
if err != nil {
panic(err)
}
fmt.Print("Enter the array as a space seperated string: ")
array = make([]int, n)
for i := 0; i < n; i++ {
_, _ = fmt.Scan(&array[i])
}
return m, array
}
func main() {
m, array := input()
fmt.Println(m, array)
}
ありがとう、私はバグを修正し、あなたの投稿に編集を提出しました。 – dmikalova