转到Go语言中的Ascii int转换

时间:2016-09-15 11:33:30

标签: c# .net go

我们有一个从C#.Net到Go语言的项目迁移。我完成了大部分工作,但我被困在一个地方。在c#中,我有一个代码,

(int)char < 31

我怎么用Go语言写这个?

2 个答案:

答案 0 :(得分:2)

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),您可以使用简单类型conversion ,例如。

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

请参阅相关问题:Equivalent of python's ord(), chr() in go?

答案 1 :(得分:-2)

我发现以下变化回答了我的自我

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

这对我有用