我將如何測試來自fmt.Scan/Scanf/Scanln的用戶輸入?如何在Go中編寫測試用戶輸入
例如我怎麼能測試功能輸入將接受來自STDIN的「4 5 \ n」和「1 2 3 4 \ n」並返回n == 5和數組== == [1,2,3,4, 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