使用go语言:
var i byte go func() { for i = 0; i <= 255; i++ { } }()运行这段代码必然卡死,我认为和byte有关,不知道大家怎么看?
可以加调试打印:可以发现i不断从0~255循环。
go语言里面,byte类似c语言里面unsigned char,取值范围就是0~FF,达到255后再加1就变回0。仍然符合i<=255的要求,所以循环继续,无限循环造成类似卡死的效果。
非常有意思的是,即使加了溢出异常,这个问题也不会修复。
这个i是byte型的,也就是说它长度只能是一个字节,那你这个循环自然永远满足i<=255
你试下将255改为254