fonction avec () vs []

yodarkyodark Membre
08:32 modifié dans API AppKit #1
bonjour à  tous,

Petite question j'ai trouvé sur le net une fonction se présentant ainsi

CGFloat RadiansToDegrees(CGFloat radians) {return radians * 180 / M_PI;};
pour l'appeller j'utilise des parenthèses rondes RadiansToDegrees(asin(-y/hyp))

Ma question est dans quel cas on utilise des parenthèses rondes pour appeller des fonction ?
Quel différence entre [self RadiansToDegrees:radian] ?
dans quel cas utiliser un type de fonction avec parenthèses rondes et dans quel cas utiliser les carrés?

Réponses

  • schlumschlum Membre
    08:32 modifié #2
    Dans Objective-C, il y a Objective et C

    Les fonctions à  appeler avec les crochets sont les méthodes d'objets
    Les autres sont des fonctions C classiques  ;)
  • Philippe49Philippe49 Membre
    08:32 modifié #3
    dans 1224581980:

    CGFloat RadiansToDegrees(CGFloat radians) {return radians * 180 / M_PI;};

    Appel d'une fonction C.
    Soit cette fonction appartient à  l'une des bibliothèques du C, soit tu écris le code de cette fonction C dans ton code.

    dans 1224581980:

    Quel différence entre [self RadiansToDegrees:radian] ?

    Il s'agit d'un message Objective-C .. que le compilateur traduit par une syntaxe avec parenthèses dans la phase de précompilation. Cette écriture entre crochets n'est qu'une présentation élégante pour des fonctions C

    dans 1224581980:

    dans quel cas utiliser un type de fonction avec parenthèses rondes et dans quel cas utiliser les carrés?

    L'un ou l'autre marche dans ton exemple. Ce n'est qu'une question de "bonne présentation" de code, et cela varie selon les choix personnels/groupes.
    L'avantage de l'écrire en fonction C c'est qu'on peut l'utiliser facilement dans différentes classes sans avoir à  réécrire le code dans chaque fichier d'implémentation.  
Connectez-vous ou Inscrivez-vous pour répondre.