如何求golang字母表中的等效字符数

如何求golang字母表中的等效字符数,go,Go,如何求golang字母表中字符的等效数 例如A==>1,B==>2你可以这样做: func f(in rune) int { return int(in-'A'+1) } 理想情况下,您应该添加一些边界检查,以确保输入在预期范围内 func toNum(c rune) byte { return byte(c) - byte('A') + 1 } func main() { fmt.Print(toNum('A')) fmt.Print(toNum('B'))

如何求golang字母表中字符的等效数 例如A==>1,B==>2你可以这样做:

func f(in rune) int {
  return int(in-'A'+1)
}
理想情况下,您应该添加一些边界检查,以确保输入在预期范围内

func toNum(c rune) byte {
    return byte(c) - byte('A') + 1
}
func main() {
    fmt.Print(toNum('A'))
    fmt.Print(toNum('B'))
    fmt.Print(toNum('C'))
}
结果是:
123

您只需获得每个字母的ascii码,然后从每个字母中减去64(因为65是ascii A)

我已将我的示例链接到Go游乐场:


当然,当您转到小写字母时会出现跳转(因为ascii跳转)。如果这很重要,您需要用另一个小写字母的偏移量来说明这一点。

这是否回答了您的问题?不,我也看到了,但那不是我想要的。解决方案显示有从数字到字符的转换@jakub你的答案太棒了!
package main

import "fmt"

func main() {
    numeral := alphaNum('B')
    fmt.Println(numeral)
}

func alphaNum(letter rune) int {
    char := int(letter)
    char -= 64
    return char
}