Question sur readLine()

Hello,

Petite question rudimentaire. La fonction readLine renvoie un String? mais est-ce bien utile ? Je veux dire, même s’il l’on ne renseigne pas de texte, readLine va renvoyer une chaîne de caractère «  » et pas nil. On pourrait directement se servir de readLine()! nan ?

Merci :slight_smile:

Paf … plantage de l’application ! :frowning:

Tu vas me répondre que readLine() ne peut jamais contenir de Nil. Je n’ai pas regardé son code donc je ne sais pas. Mais la question n’est pas là ! C’est juste un exercice de formation.

Dans un cas réel, si une fonction retourne String? c’est qu’elle considère qu’il peut arriver des moments où il vas arriver une valeur Nulle. Il ne faut JAMAIS utiliser l’opérateur ! pour convertir brutalement une variable. C’est dangereux, et peut planter l’application. D’ailleurs je ne comprend pas qu’Apple n’ai pas supprimé cette fonction de Swift depuis longtemps.

De plus, readLine() peut évoluer. Son auteur peut ajouter des fonctionnalités supplémentaires, pouvant provoquer l’apparition de valeurs nulles. Ton code « optimisé », valable pour une version, ne l’est peut-être plus pour la suivante !

Donc, priorité à la sécurité de l’application. Si une fonction te retourne un ?, toujours considérer qu’il y a un danger potentiel, même minuscule et sécuriser le code correspondant !

1 « J'aime »

Eh bien ! Voilà une réponse totalement satisfaisante, un grand merci. :smiley: