Question sur la virgule
J'ai une petite question sur une syntaxe que je vois de temps en temps :
[ivar release], ivar = nil;
Au niveau comportement, est-ce que la virgule change quelque chose par rapport au point virgule ?
[ivar release], ivar = nil;
Au niveau comportement, est-ce que la virgule change quelque chose par rapport au point virgule ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Par contre, dans le cas d'une affectation, ça change tout :
Dans le cas de "foo = [bar release]; bar = nil;", foo contient le résultat de l'appel de la méthode release. Dans le cas de "foo = [bar release], bar= nil;", foo contient la valeur de bar (comme si tu avais fait foo = bar = nil), donc nil.
int i,j;
printf("%d\n",(i=3,j=2));
la valeur de l'expression est 2;
Utile pour les expressions conditionnelles:
if(i=2,j<10)
ici c'est j<10 qui est évalué.
Les expressions sont évaluées de gauche à droite;
Dans l'exemple que tu cites, la virgule n'a qu'un seul but: gagner une ligne de code.
Ok c'est ce qu'il me semblait ^^