我首先尝试获取用户输入。此阶段的输入应该是一个单一的 uint,但是,如果用户输入是 2,那么我想让我的程序创建 2 个三角形,其中包含额外的 2 个用户输入,其形式为 (int int int float)。例如)3 2 3 0.4。所以我创建了三角形结构,它有边切片和 Gs,指的是灰度,你现在不必担心灰度。所以这是我的代码: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}对于所有 s1、s2 和 s3,它一直返回一个错误,说“无法在切片文字中将 int64 键入为 int”。我该怎么做才能让它发挥作用?
1 回答
炎炎设计
TA贡献1808条经验 获得超4个赞
strconv.ParseInt
返回一个int64
,它是与 不同的类型int
。您必须将变量转换为int
以将它们放在 s 的切片中int
。
triangle := triangle{Sides: []int{int(s1), int(s2), int(s3)}, Gs: gs}
见:https ://tour.golang.org/basics/13
- 1 回答
- 0 关注
- 331 浏览
添加回答
举报
0/150
提交
取消