• [^] # Re: vive les gotos

    Posté par . En réponse à la dépêche Critères de personnalité d'un code. Évalué à 2.

    Tu vois, un truc marrant, ton code, j'ai _beaucoup_ de mal à le comprendre. Bein oui, il est tout simple, et tout petit, mais c'est un style avec lequel je ne suis pas du tout familier.

    Le "for" j'ai du mal à comprendre comment il fonctionne, il ne décrit pas une étape simple (il combine un assignement, un test et un saut, et introduit un bloc). J'ai du mal à voir que "list" c'est un test+un saut et à quel moment c'est réalisé. Je ne sais pas si quand "list" est null il va refaire un tour de boucle ou pas.

    Pareil, sans les accollades je dois réfléchir un moment avant de comprendre si "goto found" fait partie de la boucle ou pas, idem pour le "return default_item;".

    J'aurais naturellement écrit le truc comme ça :


    if ((list = my_list) != NULL) {
    do {
    if (match(list->item, template_item) != 0) {
    return list->item;
    }
    } while ((list = list->next) != NULL);
    }
    return default_item;


    Le résultat est identique. Mais là, je vois immédiatement ce que ça fait, comment ça va etre converti en langage machine, et comment le CPU va l'interpréter. Par contre tu vas probablement trouver ça bizarre, pas intuitif et trop long.

    Comme quoi le style reflete vraiment une personnalité.