Rya*_*ing 8 if-statement go switch-statement
在围棋,switchES是比C(和C++)灵活得多,因为它们可以处理布尔表达式的情况下,更换大else- if梯看似完全,尤其是与默认switch {...}块.
switch {
case x < 5 && y > 2:
//...
case y == 1 || x > 2:
//...
default:
}
Run Code Online (Sandbox Code Playgroud)
使用switchOver else- ifin Go 有效率优势吗?似乎switch灵活性会提高效率.是否只是由编译器来弄清楚它是否可以制作跳转表?
使用switchover if和else?有任何性能优势吗?
sya*_*yam 10
除非你所有的case都是积分常数,否则你将失去转换switch为跳转表的可能性.
所以,如果你只使用积分常数,那么Go最好switch可能等同于C++ switch,但是否则它不会比它更有效if/else.