Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Sie haben einen Weg gefunden, sie zu schaffen.
Sie versuchen, ein statisches Feldeiner Klasse in der Initialisierungsphase zu verwenden, bevor mindestens eine Instanz dieser Klasse erstellt wurde. Meiner Meinung nach ist das eine Perversion... So funktioniert es normalerweise:
Das Prinzip der Kapselung impliziert im Allgemeinen, dass solche Felder verborgen und nicht öffentlich sein sollten.Ein statisches Feld ist aus diesem Grund nicht davon abhängig, dass es Instanzen der Klasse gibt. Wenn Sie aber zuerst eine Instanz der Klasse erzeugen wollen - ok, erzeugen Sie sie, aber nur innerhalb der Funktion. Und fragen Sie dieses Feld von ihr ab (entweder direkt oder über eine Methode) - das Ergebnis ist wieder das gleiche.
Sie sind über etwas verwirrt.
Nein, ich bin über nichts verwirrt.
Zuerst die Variablen der globalen Ebene, dann die statischen Variablen und dann die lokalen Variablen, wie sie im Code erscheinen.
Dieses spezielle Beispiel verstößt gegen die Empfehlung der Dokumentation,Variablen nicht mit Funktionenzu initialisieren. Es war für die Entwickler einfacher, eine solche Warnung zu schreiben, als zu erklären, was sie dürfen und was nicht.
Entfernen Sie statische Aufladung aus Ihrer Probe und erhalten Sie das gewünschte Ergebnis.
Nein, ich bin über nichts verwirrt.
Zuerst die Variablen der globalen Ebene, dann die statischen Variablen und dann die lokalen Variablen, wie sie im Code erscheinen.
Dieses spezielle Beispiel verstößt gegen die Empfehlung der Dokumentation,Variablen nicht mit Funktionenzu initialisieren. Es war für die Entwickler einfacher, eine solche Warnung zu schreiben, als zu erklären, was sie dürfen und was nicht.
Entfernen Sie statische Elemente aus Ihrem Beispiel und Sie erhalten das gewünschte Ergebnis.
Wenn es sich um eine Konstante handelt (und globale Sichtbarkeit deklariert meist Konstanten, wenn der Code intelligent ist), gibt es keine andere Wahl.
Zu allem, was gelb ist, habe ich eine Frage: WARUM? Ich habe bereits herausgefunden, wie ich das Problem lösen kann.HIER, um das, was Sie bereits gemacht haben, nicht zu verpfuschen.
"Empfehlung zur Dokumentation" )) Ich bin erstaunt über Sie. Haben Sie wirklich immer noch nicht begriffen, dass es einen Fehler in der Sprache gibt? Die Entwickler selbst sprechen darüber und erklären, wie man richtig trommelt, damit dieser Fehler nicht auftritt. Ich habe mir vorgenommen, diesen Fehler ein für alle Mal zu vergessen.
Sie können den Wert einer Sache nicht mit einer Funktion einleiten. Auch wenn Sie es wirklich wollen. Verstehst du das nicht?
Ein statisches Feld ist ein statisches Feld, d.h. es hängt nicht von Instanzen der Klasse ab. Wenn Sie aber zuerst eine Instanz der Klasse erstellen wollen, OK, erstellen Sie sie, aber nur innerhalb der Funktion. Und fragen Sie dieses Feld von ihr ab (entweder direkt oder über eine Methode) - das Ergebnis wird wieder das gleiche sein.
Handelt es sich also um prozedurale oder objektorientierte Programmierung? Warum sollten wir außerdem klassenfremde Funktionen in der Phase vor der Initialisierung mit Bezug auf typisierte Objekte ausführen? Ich verstehe, dass die Antwort lautet "weil ich Lust dazu habe". Aber wenn ich der Entwickler wäre, würde ich mich nicht beeilen, alles abzubrechen und zu rennen, um dieses spezielle Verhalten zu beheben, denn es ist eine eher marginale Architektur und außerdem ist das Problem leicht zu lösen, indem man eine Instanz der Klasse erstellt. Natürlich nicht innerhalb der Funktion.
FOREVER, um das Chaos, das Sie bereits angerichtet haben, nicht noch größer werden zu lassen.
Sie können den Wert einer Sache nicht mit einer Funktion einleiten. Auch wenn Sie es wirklich wollen. Verstehst du das nicht?
Handelt es sich also um prozedurale oder objektorientierte Programmierung? Warum sollen plötzlich Funktionen, die nicht mit Klassen zusammenhängen, vor der Initialisierung mit typisierten Objekten ausgeführt werden? Ich verstehe, dass die Antwort lautet "weil ich Lust dazu habe". Aber wenn ich der Entwickler wäre, würde ich mich nicht beeilen, alles abzubrechen und zu rennen, um dieses spezielle Verhalten zu beheben, denn es ist eine eher marginale Architektur und außerdem ist das Problem leicht zu lösen, indem man eine Instanz der Klasse erstellt. Natürlich nicht innerhalb einer Funktion.
Sie sind also ein Befürworter der massenhaften Verwendung globaler Variablen, so wie ich es verstehe. Dann werden wir uns wohl kaum verstehen.
Außerdem kann die Funktion selbst eine Vorlage sein. Und die erzeugte Instanz sollte jeweils durch denselben Typ parametrisiert werden:
Und was machen Sie?