Go语言中Char到Ascii int的转换

本文关键字:int 转换 Ascii 语言 Char Go | 更新日期: 2023-09-27 18:07:03

我们有一个项目正在从c# . net迁移到Go语言。我已经完成了大部分,但我还停留在一个地方。在c#中,我有一个代码

(int)char < 31

我怎么写这个在Go语言?

Go语言中Char到Ascii int的转换

在Go中没有"char"类型,最接近的是rune,它是int32的别名。

作为int32的别名意味着int32rune类型是相同的,您可以将rune视为int32数字(因此您可以比较它,添加它/从中减去它等)。

但是要知道Go对类型是严格的,你不能比较不同类型的值(在你的答案中,你将它与一个没有类型的整数常量进行比较,这是可以的)。例如,下面的代码是编译时错误:

var r rune = 'a'
var i int = 100
if r < i { // Compile-time error: invalid operation: r < i (mismatched types rune and int)
    fmt.Println("less")
}

如果您需要将rune或任何其他整数类型的值转换为另一种整数类型(例如runeint),您可以使用简单的类型转换,例如:

var r rune = 'a'
var i int = 100
if int(r) < i {
    fmt.Println("less")
}

参见相关问题:相当于python's word (), chr() in go?

我找到了我自己的答案

var r rune
r = 'a' // char
r < 31