Warum sollen wir denn bei .Net mit 5.0 anfangen? Ist doch ganz was anderes...Zaphod hat geschrieben:vieleicht kommts ja für pb 5.0.net
Warum Trennung zwischen Integers und Quads?
- remi_meier
- Beiträge: 1078
- Registriert: 29.08.2004 20:11
- Wohnort: Schweiz
was ich eigentlich ausdrücken wollte, fred und die anderen haben jetzt erstmal viele andere dinge zu erledigen: pb4 release, dokumentation, portierung nach linux, entscheidung wie mit dem osx cpu debakel umgegegangen werden soll, nach osx ppc portieren, evtl nach osx x86 portieren.
ich glaube es wird eine weile dauern, bis wir wieder mit feature requests nerven dürfen
ich glaube es wird eine weile dauern, bis wir wieder mit feature requests nerven dürfen

In FreeBasic und QBasic scheint das ja auch kein Problem zu sein. Da kommt man mit einer einzigen Funktion aus:Sylvia hat geschrieben:>>Andre: ... eine universelle Funktion müsste vorher immer erst den korrekten Variablentyp ermitteln.
Und ? Ist das schwierig ?
Das kann doch der Compiler während der Kompilierung...
Code: Alles auswählen
test1$ = Str(2.67896543322678)
test2$ = Str(345.23)
test3$ = Str(201)
test4$ = Str(12147483647)
print test1$ ' 2.67896543322678
print test2$ ' 345.23
print test3$ ' 201
print test4$ ' 12147483647
sleep
Wie gesagt, an der Stelle finde ich PureBasic alles andere als pure. Schaut euch an, was man hier für einen Aufwand treiben muss:
Code: Alles auswählen
test1$ = StrD(2.67896543322678)
test2$ = StrF(345.23)
test3$ = Str(201)
test4$ = StrQ(12147483647)
Debug test1$ ; 2.678965
Debug test2$ ; 345.230011
Debug test3$ ; 201
Debug test4$ ; 12147483647
- Froggerprogger
- Badmin
- Beiträge: 855
- Registriert: 08.09.2004 20:02
Wenn man das Überladen von Prozeduren einbaut, sollte man auch die Möglichkeit des expliziten Type-Cast haben, um im Falle einer überladenen Prozedur die Möglichkeit zu haben, die auszuführende explizit zu bestimmen. Hier ist bei PB halt eine Design-Entscheidung gegen das Überladen gefallen, wahrscheinlich um PB's Compiler-Komplexität im Zaum zu halten. Explizites typecasting und überladene Prozeduren machen die Auswertung von Ausdrücken nochmals um einiges schwieriger - und da hat PB sowieso immer wieder einige Bugs.
Code: Alles auswählen
Procedure TuWas(l.l)
Debug "L"
EndProcedure
Procedure TuWas(f.f)
Debug "F"
EndProcedure
Test(2/4) ; Ausgabe L
Test(2.0/4) ; Ausgabe F
Test( (long) (2.0/4) ) ; sowas müßte dann auch machbar sein: caste 2.0/4 explizit nach long => Ausgabe L
!UD2
Das sieht aber eher so aus als wenn das zur Zeit der Compilierung übersetzt wurde, bzw. dort werden Strings für die Zahlen benutzt. Kann mir sonst nich vorstellen wie man da auf 2 Nachkommastellen kommen will. (print test2$ ' 345.23)Lebostein hat geschrieben:Code: Alles auswählen
test1$ = Str(2.67896543322678) test2$ = Str(345.23) test3$ = Str(201) test4$ = Str(12147483647) print test1$ ' 2.67896543322678 print test2$ ' 345.23 print test3$ ' 201 print test4$ ' 12147483647 sleep

[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]