[Verbesserungsvorschlag] Strukturen-Rückgabe

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

[Verbesserungsvorschlag] Strukturen-Rückgabe

Beitrag von Leonhard »

Code: Alles auswählen

Procedure.RECT Proc()
  Static RECT.RECT
  With RECT
    \Top = 10
  EndWith
  ProcedureReturn RECT
EndProcedure

Debug Proc()\Top
Zuletzt geändert von Leonhard am 25.07.2007 07:30, insgesamt 1-mal geändert.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Macht keinen Sinn, aber Strukturierte Rückgabe geht mittels Pointer und so sollte es auch bleiben.
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.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Verbesserungsvorschlag

Beitrag von Kaeru Gaman »

Leonhard hat geschrieben:

Code: Alles auswählen

Procedure.RECT Proc()
  Static RECT.RECT
  With RECT
    \Top = 10
  EndWith
  ProcedureReturn RECT
EndProcedure

Debug Proc()\Top
ich hab auch nen Verbesserungsvorschlag:

schreibe aussagekräftige Posts.

das gestammel sagt mir garnix.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Rings
Beiträge: 977
Registriert: 29.08.2004 08:48

Beitrag von Rings »

DarkDragon hat geschrieben:Macht keinen Sinn, aber Strukturierte Rückgabe geht mittels Pointer und so sollte es auch bleiben.
In jeder halbwegs modernen Programmiersprache ( VB :) )
kann man als Rückgabeparameter einer Funktion auch
'Strukturierte' verwenden.
Deine Aussage ist also haltlos und zeugt von unwissenheit.
Hab mich wohl getäuscht in dir ;)

Dieses THEMA, Rückgabe von strukturierten Daten habe ich
während der beta-phase mit fred schonmal besprochen.
damals wars einfach so das er das nimmer einbauenwollte, weil der
compiler-core stand.
Aber dieses feature iss eigentlich wichtig und auch keine große
Hexerei.
Anstatt des

Code: Alles auswählen

 Procedurereturn Variable
macht er halt noch CopyMemory der werte.
Also, nervt fred lange genug mit diesem feature, dann kommts auch in v4.x
Rings hat geschrieben:ziert sich nich beim zitieren
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

aha...

also wünscht Leonhard die möglichkeit strukturierter rückgabewerte.

hätte er auch schreiben können.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Rings hat geschrieben:
DarkDragon hat geschrieben:Macht keinen Sinn, aber Strukturierte Rückgabe geht mittels Pointer und so sollte es auch bleiben.
In jeder halbwegs modernen Programmiersprache ( VB :) )
kann man als Rückgabeparameter einer Funktion auch
'Strukturierte' verwenden.
Deine Aussage ist also haltlos und zeugt von unwissenheit.
Hab mich wohl getäuscht in dir ;)
Nein, ich meine jetzt das hier:

Code: Alles auswählen

Debug Proc()\Top
Macht für mich keinen Sinn. Dann braucht er die anderen Variablen ja nicht.
... Strukturierte Rückgabe geht mittels Pointer und so sollte es auch bleiben.
Damit meine ich, es soll so bleiben, weil PureBasic ist ja mit Sicherheit eine der am einfachsten verständlichen Sprachen und wenn man jetzt wieder drumherum schwafelt ohne die Hintergründe den Leuten verständlich zu machen ist es wieder ein Schritt richtung "VisualBasiceralisierung" und kein Neuling wird irgendwas davon verstehen.

[EDIT]
Genauso ist es mit den Interfaces, versteht man die, weiß man was für ein grober Hintergrund bei Klassen steckt. Durch PB kann ich nun auch einige andere Sprachen leicht verstehen.
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.
Gesperrt