En cas de code où vous devez faire un nettoyage de ressource avant de quitter une fonction, y a-t-il une différence de performance majeure entre ces 2 façons de le faire.
Nettoyage de la ressource avant chaque déclaration de retour
void func() { login(); bool ret = dosomething(); if(ret == false) { logout(); return; } ret = dosomethingelse(); if(ret == false) { logout(); return; } dootherstuff(); logout(); }
Nettoyage de la ressource dans un bloc enfin
void func() { login(); try { bool ret = dosomething(); if(ret == false) return; ret = dosomethingelse(); if(ret == false) return; dootherstuff(); } finally { logout(); } }
J'ai fait quelques tests de base dans des exemples de programmes et il ne semble pas y avoir beaucoup de différence. Je préfère tellement la finally
façon de procéder - mais je me demandais si cela entraînerait un impact sur les performances d'un grand projet.
if(!cond)
, alors c'est Java qui m'a fait faire ça. En C ++, c'est ainsi que j'écris du code à la fois des booléens et aussi pour d'autres types - ie int x;
if(!x)
. Étant donné que java ne me permet de l'utiliser que pour booleans
, j'ai complètement cessé d'utiliser le if(cond)
& if(!cond)
in java.
(someIntValue != 0)
que comparer plutôt qu'évaluer les booléens. Cela me sent, et je le refaçonne immédiatement quand je le vois à l'état sauvage.