Strict und Superstrict?
Übersicht

Peak7810Betreff: Strict und Superstrict? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich überlege mir BM zuzulegen.
Und bin erstmal über Strict und Superstrict gestolpert. Das bedeutet man deklariert Variablen zu Beginn, richtig? Und könnte mir jemand ein Beispiel nennen? Also wegen dem ganzen integer etc. Das waren immer schon so ein bisschen böhmische Dörfer für mich weil ich mich damit noch nicht wirklich beschäftigen musste. Vielen Dank schonmal |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
ganz einfach: in BB kannst du Variablen verwenden, ohne sie vorher zu deklarieren:
BlitzBasic: [AUSKLAPPEN] For i=65 To 90 In BlitzMax mit SuperStrict-Modus musst du die Variablen erst als global oder lokal deklarieren: BlitzMax: [AUSKLAPPEN] Local i%,alphabet$ Das bringt dir den Vorteil, dass eine falschgeschriebene Variable gemeldet und nicht einfach deklariert wird, wie hier: BlitzBasic: [AUSKLAPPEN] Local i%,alphabet$ mfg Thunder PS: Der Superstrict-Modus hat noch einige andere Besonderheiten (z.B kann kein Goto mehr verwendet werden), ich kenne jedoch nicht alle auswendig. Trotzdem empfehle ich die Verwendung. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
- Zuletzt bearbeitet von Thunder am Mo, Aug 23, 2010 15:24, insgesamt einmal bearbeitet
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Strict zwingt Dich zum deklarieren deiner Variablen (local / global), Superstrict auch zur strikten Typfestlegung (:int,:string etc.)
Ich empfehle immer superstrict zu nutzen, einfach um Fehler zu vermeiden. Superstrict erwartet also dass Du all deine Variablen von vorneherein mit einem Gültigkeitsbereich und einer Typbestimmung versiehst, wodurch Fehlzuweisungen frühzeitig vermieden werden. Zudem gibt es unter Super/strict kein Goto mehr (es wird auch nicht benötigt, da man Schleifen ja per Exit verlassen kann) Auch haben Programme mit Strict/superstrict ein erweitertes Scoping, sprich veränderte Gültigkeitsbereiche für Variablen. Prinzipiell hat dann jede Schleife ihren eigenen Gültigkeitsraum. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Typfestlegung (:int,:string etc.)
Das würde mich noch interessieren. int und string is klar aber ich hab mal gelesen daß verschiedene sprachen so ihre eigenen größen für gleiche typbezeichnung haben. Gibts vielleicht speziell für bmax eine Liste oder dergleichen. Und eine letzte Frage noch, wenn ich jetzt beispielsweise eine entität einer variablen zuweisen möchte, muss ich das dann als int deklarieren, oder muss man sich dann einen speziellen typ selber überlegen? |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es gibt eingebaute Typen: Int, String, Float, Double...
Du kannst aber auch deine eigenen Typen deklarieren, mit Type. Code: [AUSKLAPPEN] Type TTest
field bla:int end type local t:TTest = new TTest t.bla = 1 |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ah danke...
welche bereiche haben float double etc. int ja bis 65... und string is klar... damit wäre dann mein Wissensdurst fürs erste was das betrifft gestillt. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Byte, 8 bit, unsigned, 0 bis 255
Short, 16 bit, unsigned, 0 bis 65535 Int, 32 bit, signed, -2^31 bis +2^31 - 1 Long, 64 bit, signed, -2^63 bis +2^63 - 1 Float, 32 bit, floating point, (+/-)10^-38 bis (+/-)10^38 Double, 64 bit, floating point, (+/-)10^-308 bis (+/-)10^308 |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Peak7810 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
super...vielen vielen dank. | ||
KirkZero |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Noch nen kleiner Hinweis, der vielleicht nützlich sein könnte:
Da der Bereich von Byte und Short nicht ins negative gehen kann, kommst du bei einer Byte Variable die = 0 ist, auf 255 wenn du von ihr 1 abziehst Beispiel: BlitzMax: [AUSKLAPPEN]
Verhält sich mit Short Variablen ebenso, nur das du dann bei 65535 landest. Hatte deshalb schon öfters Fehler im Programm, wo ich erst garnicht darauf gekommen bin, das es daran liegt... Also immer im Hinterkopf behalten |
||
No Brain, No Pain |
![]() |
Lastmayday |
![]() Antworten mit Zitat ![]() |
---|---|---|
man kanns auch in eine zeile packen:
BlitzMax: [AUSKLAPPEN] For Local x:Int = 0 To 10 ich benutze die BLIde zum programmieren, daher muss ich meist nur die anfangs Buchstaben eintippen und die Ide vervollständigt per Tab den rest. mfg |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group