Welche Var.-Typen können =NULL sein?
Übersicht

![]() |
Rick_72Betreff: Welche Var.-Typen können =NULL sein? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo zusammen,
entgegen der Hilfe scheint NULL nur bei Types zugelassen zu sein. Ist dem so oder merk ich's nicht? Wenn ich zB einen Integer NULLen will (steht ja so in der Befehls-Referenz; bevor sich jetzt wieder jemand frühzeitig vomitieren möchte, sowas ist durchaus möglich), meckert er über "Illegal type conversion". Nun, die Offensichtlichkeit steht der Referenz entgegen. Wer weiss darüber was? Danke! P.S.: es geht darum .. Code: [AUSKLAPPEN] wert$="!"
wert$=Null ;geht nicht -> gibt Fehlermeldung Type test Field wert$ End Type wert1.test = New test wert1 = Null ; geht natürlich wunderbar. ________ B3D V1.99 |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich versteh das Problem nicht. In der Hilfe steht, dass es nur bei Types geht. Stimmt ja auch. In anderen Sprachen geht es vlt aber in BB halt nicht. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Rick_72 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aha?! Habe ich eine falsche/alte Hilfe? Bei mir steht:
Zitat: Variable= NULL
Beschreibung NULL setzt eine Variable zurück. Eigentlich wird der Variable nur der Wert Null zugewiesen. Einer Stringvariable wird dagegen ein leerer String zugewiesen. Beachte, dass die Variable dadurch nicht entfernt wird, sondern nur ein Wert gelöscht wird. Parameter - Rückgabewert Die Variable wird auf Null zurückgesetzt Beispiel Bei diesem Beispiel wird der Variable Txt$ ein Text zugewiesen, dann ausgegeben und aus dem Speicher gelöscht: Txt$="Hello World" PRINT Txt$ Txt$=NULL Ging wohl früher mal. In der aktuellen Version steht's nur mit Types. OK, damit hat sich die Sache erledigt. |
||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, geht nicht.
Wüsste aber auch nicht, wozu. Einen leeren String zuweisen kann man mit Txt$="". |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist aber nicht aus der Hilfe vom Forum, oder? Das stand soweit ich es vefolgt habe noch nie drin. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Keine Ahnung wo du die Beschreibung ausgegraben hast, die korrekte Beschreibung findet sich hier:
Null ![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
Rick_72 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weiss ich doch mittlerweile, dass meine Hilfe-Dateien very obsolete waren. Ich bin halt der Illusion verfallen, dass bei Auslieferung von BB immer die aktuelle Version dem Downlad beiliegt (habe erst vor 4 Wochen B3D gekauft; aber: nicht denken, alles prüfen). Wie gesagt: dumm von mir.
Die oben von mir gequotete Version der Hilfe ist von 2002. Da ging's wohl noch mit allen Typen. @FireballFlame: Das macht extremst Sinn und ist deswegen auch in (fast allen) höheren Sprachen so vorgesehen. Beispiel: Du hast eine Funktion, die irgendwas mit einer Int.-Var. machen soll, falls diese nicht NULL ist, also einen Wert hat (angenommen, Du brauchst für Deine Berechnungen den kompletten Int.-Wertebereich, kannst also nicht zB die 0 oder eine andere Zahl "reservieren"), also zB: Code: [AUSKLAPPEN] function test(wert)
if wert<>NULL then mache tolle sachen mit wert endif end function Willst Du testen, ob die Variable während des Programmablaufs gesetzt wurde (also einen Weert hat; <> NULL) ist Sache hiermit erledigt. Sonst musst Du irgendwelche Hilfsvariablen nutzen, die Du immer mitschleppen musst. Was natürlich geht, aber unbequem und nicht so elegant ist. |
||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man verzeihe mir mein Unwissen falsch ich falsch liegen soll aber:
So wie du dir das vorstellst geht das nur mit rein objektorienterten Sprachen. Kann mir gar nicht vorstellen dass das mit Blitz jemals ging? |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
DaysShadow |
![]() Antworten mit Zitat ![]() |
---|---|---|
Null besagt ja lediglich das ein Wert nicht existiert bzw. beschreibt es die Abwesenheit eines Wertes, wenn man Var = Null schreibt, dann hat die Variable halt keinen bekannten Wert, hat an sich nichts mit Objekt-Orientierung zu tun.
MfG DaysShadow |
||
Blessed is the mind too small for doubt |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja wenn man irgendwo den Wert NULL hat wird entweder die Variable auf ein bestimmten Speicher der als "das hier ist der NULL Speicher" bekannt ist gelegt oder man schleppt (oft s in Datenbanken) ein bit mit dass sagt, dass der wert NULL ist oder net
n blitz gibt es null nur bei types mit dieser ersten Form. Strings,ints etc haben immer einen wert (der type antrag eigendlich auch... halt den von NULL) |
||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Rick_72 hat Folgendes geschrieben: Das macht extremst Sinn und ist deswegen auch in (fast allen) höheren Sprachen so vorgesehen. Beispiel: Du hast eine Funktion, die irgendwas mit einer Int.-Var. machen soll, falls diese nicht NULL ist, also einen Wert hat (angenommen, Du brauchst für Deine Berechnungen den kompletten Int.-Wertebereich, kannst also nicht zB die 0 oder eine andere Zahl "reservieren")
Das wäre mir neu. Einer Integer-Variablen Null zuweisen geht soweit ich weiß weder in Java noch in C, und ich wüsste auch nicht, wie. Wenn der komplette Wertebereich der Variablen bereits mit Zahlen belegt ist, kann es ja schließlich keinen Zustand mehr geben, der Null symbolisiert. Man könnte, wie Silver_Knee schrieb, einen Pointer auf einen bestimmten Wert setzen, aber das ist eine andere Sache, und BB kennt so etwas ja gar nicht. |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group