我首先嘗試獲取用戶(hù)輸入。此階段的輸入應(yīng)該是一個(gè)單一的 uint,但是,如果用戶(hù)輸入是 2,那么我想讓我的程序創(chuàng)建 2 個(gè)三角形,其中包含額外的 2 個(gè)用戶(hù)輸入,其形式為 (int int int float)。例如)3 2 3 0.4。所以我創(chuàng)建了三角形結(jié)構(gòu),它有邊切片和 Gs,指的是灰度,你現(xiàn)在不必?fù)?dān)心灰度。所以這是我的代碼:type triangle struct { Sides []int Gs float64}func main() { var triangles []triangle scanner := bufio.NewScanner(os.Stdin) var number int fmt.Scan(&number) i := 0 for i < number+1 { scanner.Scan() in := scanner.Text() if len(in) != 0 { triangleDef := strings.Split(in, " ") s1, _ := strconv.ParseInt(triangleDef[0], 10, 32) s2, _ := strconv.ParseInt(triangleDef[1], 10, 32) s3, _ := strconv.ParseInt(triangleDef[2], 10, 32) gs, _ := strconv.ParseFloat(triangleDef[3], 64) // fmt.Println(s1, s2, s3, gs) triangle := triangle{Sides: []int{s1, s2, s3}, Gs: gs} triangles = append(triangles, triangle) } i++}但是在第 45 行,triangle := triangle{Sides: []int{s1, s2, s3}, Gs: gs}對(duì)于所有 s1、s2 和 s3,它一直返回一個(gè)錯(cuò)誤,說(shuō)“無(wú)法在切片文字中將 int64 鍵入為 int”。我該怎么做才能讓它發(fā)揮作用?
1 回答

炎炎設(shè)計(jì)
TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
strconv.ParseInt
返回一個(gè)int64
,它是與 不同的類(lèi)型int
。您必須將變量轉(zhuǎn)換為int
以將它們放在 s 的切片中int
。
triangle := triangle{Sides: []int{int(s1), int(s2), int(s3)}, Gs: gs}
見(jiàn):https ://tour.golang.org/basics/13
- 1 回答
- 0 關(guān)注
- 344 瀏覽
添加回答
舉報(bào)
0/150
提交
取消