Longueur maximale du nom de la méthode

Quelqu’un sait-il quelle est la longueur maximale d’un nom de méthode dans le langage de programmation de votre choix? J’allais en faire une question spécifique au C #, mais je pense que ce serait bien de savoir à travers le spectre.

Quels sont les facteurs impliqués également:

  • La spécification de langue limite-t-elle cela?
  • À quoi le compilateur le limite-t-il?
    • Est-ce différent sur les machines 32 bits vs 64 bits?

Pour C #, je ne crois pas qu’il existe une limite ssortingcte spécifiée . (La section 2.4.2 de la spécification C # 5 ne donne pas de limite, par exemple.) Roslyn v2.2.0.61624 semble avoir une limite de 1024 caractères; Cela dépasse largement les limites de la lisibilité et même un nom judicieux généré par la machine.

Pour Java, la section 3.8 de la spécification indique:

Un identifiant est une séquence de longueur illimitée de lettres Java et de chiffres Java, le premier devant être une lettre Java.

PHP ne semble être limité que par la limite de mémoire du script.

Avec 128 Mo, j’ai pu créer une classe (et une méthode) avec 4 millions de caractères.

'; } }"); new $className(); $i *= 2; } ?> 

Je viens de faire un test en C # Visual Studio 2010 (x64): créé un identifiant:

 int a123456789a123...; 

Et répété À 512 caractères, VS me donne l’erreur “Identifiant trop long”. 511 c’est bien cependant. (Nombre de caractères cochés dans Word.)

Un autre exemple:

 int whyintheworldwouldyoueverhaveanidenfifierthislongitsreallyjustquiteridiculousimeancmonyoucouldatleasthavethecommoncourtesyofmakingitcamelcasesoitsnotsohardtoreadcmonjuststopnowyourereallyreachingtomakethisaslongaspossiblearentyou123412341234alrightwellthatsenoughnowisntitwelliguessnotbecauseimstillgoingthisisofficallytheworstidentifiereverಠ_ಠokaynowthatithasunicodeitsofficialbutseriouslythisthingissolongthatihadtogetupinthemiddleofittotakeabreakbeforesittingdowntofinishtoppingitofftothemaxcharlimitof___511; 

L’implémentation C # de Microsoft est 511, l’implémentation VB.NET est 1023.

Visual Studio ne colorisera que les 511 premiers caractères (1023 pour VB) de l’identifiant et conservera le rest en noir.

en C # est de 511 caractères.

Les noms des symboles Lisp courants sont des chaînes; les chaînes ont une limite de longueur de array-dimension-limit

La valeur de array-dimension-limit est un entier positif qui est la limite supérieure exclusive de chaque dimension individuelle d’un tableau. Cette limite dépend de la mise en œuvre mais ne sera pas inférieure à 1024. (Les développeurs sont encouragés à rendre cette limite aussi grande que possible sans sacrifier les performances.)

En pratique, cela peut être assez important

 Welcome to Clozure Common Lisp Version 1.3-dev-r11583M-trunk (DarwinX8664)! ? array-dimension-limit 72057594037927936 ? Welcome to Clozure Common Lisp Version 1.3-dev-r11583M-trunk (DarwinX8632)! ? array-dimension-limit 16777216 ? 

Cette réponse ignore le nom du package du nom de la méthode; cela pourrait doubler la longueur.

en cours (OpenEdge), la limite est de 32 caractères.

En DI, je ne le sais pas, mais je soupçonne que c’est quelque chose de fou comme> 100 Mo. Ce pourrait être une chose hors de mémoire. Ceci est basé sur le fait de savoir que moi et d’autres personnes avons rencontré des limitations de format de fichier object d’environ 11 Ko pour les noms de symboles et que cela a été corrigé.

En Java, je pense qu’une limite de longueur n’est pas donnée. Voir ceci du didacticiel en ligne de Sun Java :

Les noms de variables sont sensibles à la casse. Le nom d’une variable peut être n’importe quel identifiant légal – une séquence illimitée de lettres et de chiffres Unicode, commençant par une lettre …

Comme d’autres ci-dessus, je suppose que la longueur dépend de la mémoire disponible.

Intéressant! En Java comme d’autres ont dit qu’il n’y avait pas de limite (je n’ai jamais pensé à la longueur!) Mais je pense que vous voulez éviter d’avoir un nom de méthode trop long, veux oublier le nom de la méthode!).

Je pense que le ” code propre ” en bref parle de l’utilisation de noms prononçables descriptifs. Vous pouvez aussi prétendre qu’un long nom descriptif vaut mieux qu’un nom court, je suppose un équilibre sonore. C’est mon humble avis.