我正在尝试解决一些示例编程问题,以使自己熟悉该语言。
我正在遍历一个字符串,如下所示:
func main() {
fullFile := "abcdDefF"
for i := 1; i < len(fullFile); i++ {
println(fullFile[i-1], fullFile[i], fullFile[i-1]-fullFile[i])
}
}
在循环中,我想获取当前符文与前一个符文之间的差异(尝试通过查找差异== 32的任何对来识别小写-大写对。
奇怪的是,这种减法无法正常运行(实际上,在我期望为负数的情况下,似乎会产生加法运算),尽管我希望这样做,因为符文由int32表示。
答案 0 :(得分:0)
弄清楚了:返回的数据类型是一个字节。
显式转换为int,一切正常。
func main() {
fullFile, _ := ioutil.ReadFile("input/input.txt")
previous := 0
current := 0
for i := 1; i < len(fullFile); i++ {
previous = int(fullFile[i-1])
current = int(fullFile[i])
println(current, previous, current-previous)
}
}