Dazu muss ich auch mal meinen Senf dazugeben.
Das information hiding des objektorientierten Konzepts gibts ja nicht erst seit C++, auch viele prozedurale Sprachen unterstützen das schon (als prominentes Beispiel C).
Dort wird das so realisiert, dass man in einer Datei eine Variable im oberen Level als static deklariert und nur die Prozeduren innerhalb der Datei sie wie eine globale Variable behandeln dürfen (klappt auch mit Prozeduren).
Ich würde mir wünschen, wenn dieses Konzept auch seinen Weg in PureBasic finden würde; das sollte eigentlich nicht besonders schwer sein, da müssen imho nur Symboltabelle und Parser leicht modifiziert werden.
Damit wäre es jedenfalls möglich, geteilte Variablen zu verwenden, ohne Namen aus dem globalen Scope zu "verschwenden".
Das geht zwar prinzipiell jetzt auch, allerdings muss man, wenn man modular programmieren möchte, immer so komische, lange Namen für die geteilten Variablen verwenden, damit sie sich nicht mit potentiellen globalen überschneiden.
[PB4 B11] kleiner Fehler mit Shared
Es würde wahrscheinlich genügen, das Schlüsselwort Shared bei jeder Definition zur Pflicht zu machen. Damit würde der jetztige ungute Zustand beseitigt, dass eine irgendwie definierte Variable des Hauptprogrammes mit den in Prozeduren als Shared definierten Variablen identisch wird, ohne dass man dies will.Heroglyph hat geschrieben:Ich würde mir wünschen, wenn dieses Konzept auch seinen Weg in PureBasic finden würde; das sollte eigentlich nicht besonders schwer sein, da müssen imho nur Symboltabelle und Parser leicht modifiziert werden.
Will man es, genügt die Definition per Shared.
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Variablen werden nicht definiert, sondern
1.) Deklariert - Einem Datentyp zugewiesen
2.) Initialisiert - Wert zugewiesen
Konstanten, Strukturen, ... werden definiert.
Mit Shared/Protected/Global/Define(DefType)/... werden sie deklariert und sind dann vorhanden und bereit zum beschreiben.
1.) Deklariert - Einem Datentyp zugewiesen
2.) Initialisiert - Wert zugewiesen
Konstanten, Strukturen, ... werden definiert.
Mit Shared/Protected/Global/Define(DefType)/... werden sie deklariert und sind dann vorhanden und bereit zum beschreiben.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
DarkDragon hat geschrieben:Variablen werden nicht definiert ...
...Define(DefType)/... werden sie deklariert und sind dann vorhanden und bereit zum beschreiben.

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
...das ist wahrscheinlich Franglais... sollte wohl besser Declare heißen, wa?ts-soft hat geschrieben:DarkDragon hat geschrieben:Variablen werden nicht definiert ...
...Define(DefType)/... werden sie deklariert und sind dann vorhanden und bereit zum beschreiben.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.