J'ai une fonction somefunction()
qui s'appelle beaucoup, mais la toute première fois qu'elle s'appelle je veux qu'elle se comporte un peu différemment. Voici un exemple:Comment approcher une fonction qui a un comportement légèrement différent lorsqu'elle est appelée la première fois?
first_time = true;
somefunction(){
// bunch of code...
if (first_time)
{
first_time = false;
// do it this way...
}
else
{
// do it that way...
}
// bunch of code...
}
3 approches viennent à l'esprit:
Vous pouvez faire comme dans l'exemple ci-dessus où vous la notion de « première fois » est explicite. Habituellement, la « première fois » chèque est un chèque booléen donc son très pas cher - mais encore, quand vous faites cela dans une minuterie qui déclenche de toutes les quelques centaines de millisecondes, il se sent pirater-ish.
Vous dupliquez la fonction et vous modifiez simplement les quelques lignes de code qui doivent être modifiées lors de son appel la première fois et appelez une fonction au début et l'autre fonction une fois sur deux. Surtout si la fonction est grande, cela semble vraiment moche IMO.
vous briser
somefunction()
et créer des fonctions distinctes pour lequel le code est exactement le même. Vous créez ensuite des fonctions wrapper pour la première fois et chaque fois que vous utilisez ces fonctions plus petites. Je pense que cette approche est la meilleure et est ce que je vais utiliser dans ma situation impliquant une minuterie.
Pensées?
De quelle langue parlons-nous? – NullUserException
Eh bien, je l'ai vu arriver beaucoup en C, où je suppose qu'il y a moins d'options pour écrire du code plus agréable ... – Suan