我只是出于對(duì) golang 的興趣在做一些算法問(wèn)題。我知道在其他語(yǔ)言中,要按字母順序查找下一個(gè)字符,我可以對(duì)字符進(jìn)行位移,因?yàn)樽址ㄎ蚁氲降氖?C)實(shí)際上是一個(gè)數(shù)字。所以我試著做"a" >> 2或者類(lèi)似的東西,但是類(lèi)型不匹配。我想知道如何實(shí)現(xiàn)這一目標(biāo)。
2 回答

慕森卡
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
您正在嘗試移動(dòng)一個(gè)字符串,而不是一個(gè)字節(jié),就像@Not_a_Golfer 所說(shuō)的那樣'a'>>2應(yīng)該可以正常工作。
但是,要獲得下一個(gè)字符,您可以執(zhí)行以下操作:
func nextChar(ch byte) byte {
if ch += 1; ch > 'z' {
return 'a'
}
return ch
}
func main() {
fmt.Println(string(nextChar('a')))
}
當(dāng)然,如果您需要的不僅僅是 az 支持,它會(huì)更復(fù)雜,請(qǐng)查看unicode包和這篇關(guān)于 go 字符串的博客文章。
- 2 回答
- 0 關(guān)注
- 159 瀏覽
添加回答
舉報(bào)
0/150
提交
取消