为简单起见,以下解决方案中省略了范围检查。
它们都可以在Go Playground上尝试。
rune
只需将数字
'A' - 1添加
1到const即可,然后将其添加到const中
'A',然后添加
2get
'B'等。
func toChar(i int) rune { return rune('A' - 1 + i)}
测试它:
for _, i := range []int{1, 2, 23, 26} { fmt.Printf("%d %qn", i, toChar(i))}
输出:
号码->1 'A'2 'B'23 'W'26 'Z'
string
或者,如果您希望将其作为
string:
func toCharStr(i int) string { return string('A' - 1 + i)}
输出:
1 "A"2 "B"23 "W"26 "Z"
string在规范中记录了最后一个(将数字转换为):在字符串类型之间来回转换:
编号->将有符号或无符号整数值转换为字符串类型会产生一个包含该整数的UTF-8表示形式的字符串。
string(已缓存)
如果您需要多次执行此 *** 作
strings,例如将其存储在一个数组中,然后
string从中返回即可,这是有利可图的:
var arr = [...]string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}func toCharStrArr(i int) string { return arr[i-1]}
注意:切片(而不是数组)也可以。
注2:你可以,如果你添加一个虚拟的第一个字符,所以你不必减去改善这个
1来自
i:
数字->var arr = [...]string{".", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}func toCharStrArr(i int) string { return arr[i] }
string(切片
string常量)
另一个有趣的解决方案:
const abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"func toCharStrConst(i int) string { return abc[i-1 : i]}
切片a
string是有效的:新方法
string将共享后备数组(可以完成,因为
strings是不可变的)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)