Si j'ai une fonction qui ne retourne jamais (il contient une boucle infinie) Comment puis-je déclarer/communiquer qu'elle ne reviendra jamais à l'utilisateur de la fonction? L'utilisateur ne voit pas le code source, seule la signature de fonction et la documentation.
Donc, l'utilisateur saura appeler ma fonction dans un nouveau fil d'autre que son programme sera bloqué pour toujours et le code ci-dessous ne sera jamais exécuté.
Exemple de fonction:
public void Foo()
{
while (true)
{
_player.Play("scary_sound.wav");
Thread.Sleep(TimeSpan.FromMinutes(5));
}
}
Devrais-je déclarer que dans le cadre de la documentation?
/// <summary>Plays scary sounds!</summary>
/// <remarks>This function never returns. Call it on a new thread.</remarks>
public void Foo()
Ou nommez-le avec un préfixe "exécuté" et un suffixe "boucle" ou quelque chose?
public void RunFooLoop()
Quelles voies sont là pour déclarer/communiquer cela? Des pratiques communes? Des exemples?
En Python, vous pouvez utiliser typing.NoReturn
Pour indiquer qu'une fonction ne revient jamais. par exemple.
from typing import NoReturn
def stop() -> NoReturn:
raise RuntimeError('no way')