字符类型单引号和双引号区别是什么?
来源:2-1 变量定义
qq_永远的稻米_0
2022-06-06 23:26:13
byte、rune、string的具体解释是什么?最近在做算法题,各种byte、rune、string之间切换,还有就是单引号和双引号之前的区别理不清,
我现在理解:
单引号是单字符,可以是byte也可以是rune,string是双引号字符串
string可以转化为[]byte(s)或者[]rune(s),最后再变为string([]rune(s))
无法理解的什么时候[]byte,什么时候[]rune, 直接string取第i个s[i]好像就是单引号的byte类型,'0'是ascll的48?理不清。。。
1回答
ccmouse
2022-06-07
这个我后面会详细讲到rune和byte。不过不是同学这个角度。
单引号是单字符,可以是byte也可以是rune,string是双引号字符串:这个是对的。
string可以转化为[]byte(s)或者[]rune(s),最后再变为string([]rune(s)):这个也是对的。
什么时候[]byte,什么时候[]rune,这个取决于你要什么。具体例子可以参照3-6 字符和字符串处理。
[]byte就是你想知道每个字节的内容。但是string是UTF-8编码的,这是可变长的编码,通常一个英文字符1byte,一个汉字3byte,那么我想取第几个“字”(rune),就要使用[]rune。
然后s[i]的确是第i个byte,不是rune。要取第i个rune,就要先[]rune(s)。
然后'0'是ascii 48,对的。我们可以说
var b1 byte = 48
var b2 byte = '0'
甚至:var n int = '0'
相似问题