注意:我是StackOverflow以及編程的新手,所以如果我的問題不是「如此專業」或「格式良好」,請原諒我。爲什麼數組由Golang中的stdin轉換成最後一項爲零?
我正在使用以下Go(Golang)代碼從終端捕獲一些以空格分隔的數字(字符串),然後將其拆分成一個切片。後來,我通過從字符串切片中一次獲取一個項目並將其轉換爲float64並將其附加到float64切片,將此切片轉換爲一段float64。 然後我返回生成的float64切片並將其打印在主函數中。 問題是,當我將一些以空格分隔的數字傳遞給終端時,最後一位數字轉換爲零。
例如,如果我通過1 2 3 4 5
我期望得到的切片爲[1 2 3 4 5]
,但它給了我切片[1 2 3 4 0]
。
我想從過去的5個小時,但我無法找到我失蹤或搞亂。
代碼:
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
a := ReadInput()
fmt.Println(a)
}
func ReadInput() []float64 {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
textSlice := strings.Split(text, " ")
floatsSlice := make([]float64, 0)
for _, elem := range textSlice {
i, _ := strconv.ParseFloat(elem, 64)
floatsSlice = append(floatsSlice, i)
}
return floatsSlice
}
預先感謝您!