当我在Go中比较以下不等长的字符串时,比较的结果是不对的。有人可以帮忙吗?i := "1206410694"j := "128000000"fmt.Println("result is", i >= j, i, j )输出是:result is false 1206410694 128000000原因可能是因为 Go 从最重要的字符开始逐字符比较。在我的例子中,这些字符串代表数字,所以 i 大于 j。所以只是想知道是否有人可以帮助解释如何在 go 中比较不等长的字符串。
1 回答
慕码人2483693
TA贡献1860条经验 获得超9个赞
原因可能是因为 Go 从最重要的字符开始逐字符比较。
这是对的。
如果它们代表数字,那么您应该将它们作为数字进行比较。int
在比较之前解析/转换它们:
ii, _ := strconv.Atoi(i) ij, _ := strconv.Atoi(j)
编辑:是的,@JimB 是完全正确的。如果您不是 100% 确定转换会成功,请不要忽略错误。
- 1 回答
- 0 关注
- 173 浏览
添加回答
举报
0/150
提交
取消