w Go, switch
es są znacznie bardziej elastyczne niż w C (i C++), ponieważ mogą one obsługiwać przypadki wyrażeń logicznych i zastąpić duże else
- if
drabiny pozornie całkowicie, zwłaszcza z domyślnymi bloków .przełącznik Go vs if-else sprawność
switch {
case x < 5 && y > 2:
//...
case y == 1 || x > 2:
//...
default:
}
Czy jest jakaś zaleta sprawność do korzystania z switch
nad else
- if
w Go? Wydaje się, że zwiększona wydajność zostałaby utracona dzięki elastyczności switch
. Czy to po prostu od kompilatora, aby to rozgryźć i zobaczyć, czy może on zrobić tabelę skoku?
Czy są jakieś zalety związane z wydajnością korzystania z switch
przez if
i else
?
To bardzo pomocna odpowiedź. Dzięki, że mówisz mi, żebym zlekceważył pytanie, rozumiem to teraz. –
Podobnie jak w przypadku wszystkich optymalizacji, powinny być prowadzone przez pomiary i analizy, a nie martwić się o szczegóły, które mogą nigdy nie mieć żadnego wpływu. Ale jeśli twój przełącznik/obudowa jest głęboko zagnieżdżona w wewnętrznej pętli, jej zachowanie może być bardzo znaczące. Jak już powiedziałem, potrzebne są pomiary i analizy. –