Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Vous avez trouvé un moyen de le créer.
Vous essayez d'utiliser un champ statiqued'une classe à l'étape d'initialisation avant qu'au moins une instance de cette classe ait été créée. A mon avis, c'est une perversion... C'est ainsi que cela fonctionne normalement :
Le principe d'encapsulation implique généralement que ces champs doivent être cachés et non publics.Un champ statique est pour cette raison qu'il ne dépend pas de la présence d'instances de la classe. Mais si vous voulez d'abord créer une instance de la classe - ok, créez-la, mais seulement à l'intérieur de la fonction. Et demandez ce champ à partir de celle-ci (soit directement, soit par une méthode) - le résultat est encore le même.
Vous êtes confus à propos de quelque chose.
Non, je ne suis pas confus à propos de quoi que ce soit.
Les variables de niveau global d'abord, puis les variables statiques et enfin les variables locales au fur et à mesure qu'elles apparaissent dans le code.
Cet exemple particulier enfreint la recommandation de la documentation de ne pasinitialiser les variables avec des fonctions. Il était plus facile pour les développeurs d'écrire un tel avertissement que d'expliquer où ils doivent et ne doivent pas.
Supprimez l'électricité statique de votre échantillon et obtenez le résultat que vous souhaitez.
Non, je ne suis pas confus à propos de quoi que ce soit.
Les variables de niveau global d'abord, puis les variables statiques et enfin les variables locales au fur et à mesure qu'elles apparaissent dans le code.
Cet exemple particulier enfreint la recommandation de la documentation de ne pasinitialiser les variables avec des fonctions. Il était plus facile pour les développeurs d'écrire un tel avertissement que d'expliquer où ils doivent et ne doivent pas.
Retirez les statiques de votre exemple et obtenez le résultat souhaité.
Si c'est une constante (et la visibilité globale déclare le plus souvent des constantes, si le code est intelligent), il n'y a pas d'autre choix.
Concernant tout ce qui est en jaune, j'ai une question : POURQUOI ? J'ai déjà trouvé comment résoudre le problème.ICI afin de ne pas gâcher ce que vous avez déjà fait.
"Recommandation de documentation" )) Je suis stupéfait par toi. Vous n'avez toujours pas compris ? Il y a un bug dans la langue. Les développeurs eux-mêmes en parlent, et vous expliquent comment faire correctement du tambourin pour ne pas rencontrer ce bug. J'ai fait en sorte d'oublier ce bug une fois pour toutes.
Vous ne pouvez pas initier la valeur de quelque chose avec une fonction. Même si vous le voulez vraiment. Tu ne comprends pas ?
Un champ statique est un champ statique, il ne dépend donc pas des instances de la classe. Mais si vous voulez d'abord créer une instance de la classe, d'accord, créez-la, mais seulement à l'intérieur de la fonction. Et demandez ce champ à cette instance (soit directement, soit par une méthode) - le résultat sera encore le même.
Alors, est-ce de la programmation procédurale ou orientée objet ? Pourquoi devrions-nous exécuter des fonctions non liées aux classes à l'étape précédant l'initialisation en référence à des objets typés d'ailleurs. Je comprends que la réponse soit "parce que j'en ai envie". Mais si j'étais le développeur, je ne me dépêcherais pas de tout annuler et de courir pour corriger ce comportement particulier, car il s'agit d'une architecture plutôt marginale et de plus, le problème est facilement résolu en créant une instance de la classe. Pas à l'intérieur de la fonction, bien sûr.
POUR TOUJOURS, afin de ne pas faire un gâchis du gâchis que vous avez déjà fait.
Vous ne pouvez pas initier la valeur de quelque chose avec une fonction. Même si vous le voulez vraiment. Tu ne comprends pas ?
S'agit-il donc de programmation procédurale ou orientée objet ? Pourquoi, tout d'un coup, effectuer des fonctions non liées aux classes avant l'initialisation par rapport aux objets typés. Je comprends que la réponse soit "parce que j'en ai envie". Mais si j'étais le développeur, je ne me dépêcherais pas de tout annuler et de courir pour corriger ce comportement particulier, car il s'agit d'une architecture plutôt marginale et de plus, le problème est facilement résolu en créant une instance de la classe. Pas à l'intérieur d'une fonction, bien sûr.
Vous êtes donc un partisan de l'utilisation massive des variables globales, si je comprends bien. Dans ce cas, il est peu probable que vous et moi nous comprenions.
En outre, la fonction elle-même peut être un modèle. et l'instance créée, respectivement, doivent être paramétrées par le même type :
Que faites-vous ?