Problem mit den Rückgabewerten der LinkedList()-Befehle

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Problem mit den Rückgabewerten der LinkedList()-Befehle

Beitrag von Lebostein »

Folgender Code:

Code: Alles auswählen

NewList liste.s()

AddElement(liste()) ;Element 0
AddElement(liste()) ;Element 1
AddElement(liste()) ;Element 2

Debug AddElement(liste())         ;Adresse des neuen Elementes, also Element 3
Debug SelectElement(liste(),0)    ;leider kein Rückgabewert...warum eigentlich nicht?
Debug FirstElement(liste())       ;Adresse des ersten Elementes, also Element 0
Debug LastElement(liste())        ;Adresse des letzten Elementes, also Element 3
Debug @liste()                    ;Adresse des aktuellen Elementes, also Element 3
Folgendes Ergebnis erhalte ich:

Code: Alles auswählen

8724224  ;letztes Element
4215320  ;Müll
8724152  ;erstes Element
8724224  ;letztes Element
0        ;letztes Element
Warum bekomme ich denn in der letzten Zeile bei "Debug @liste()" eine 0 zurück. Müsste da nicht eigentlich die Adresse des aktuellen bzw. hier letzten Elementes auftauchen, also der Wert 8724224 ??

Warum gibt eigentlich SelectElement() keine Adresse zurück sondern nur eine undefinierbare Zahl? Im Handbuch steht: "Rückgabewert: Dieser Befehl hat keinen Rückgabewert." Aber das wäre doch sinnvoll, die anderen Befehle können es ja auch.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag von GPI »

ist irgendwie komisch... oder kurz

hä?

erweiterter Code:

Code: Alles auswählen

NewList liste.s() 

AddElement(liste()):liste()="1" ;Element 0 
AddElement(liste()):liste()="2" ;Element 1 
AddElement(liste()):liste()="3" ;Element 2 

Debug AddElement(liste())     ;Adresse des neuen Elementes, also Element 3 
liste()="4"
Debug SelectElement(liste(),0)  ;leider kein Rückgabewert...warum eigentlich nicht? 
;Nicht definiert, siehe anleitung
Debug "--"
Debug FirstElement(liste())    ;Adresse des ersten Elementes, also Element 0 
Debug @liste()
Debug liste()
Debug "---"

Debug LastElement(liste())    ;Adresse des letzten Elementes, also Element 3 
Debug @liste()
Debug liste()
Debug "---"
pb3.91

Code: Alles auswählen

8789792
4215268
--
8789672
8789696
1
---
8789792
8789816
4
---
PB3.92

Code: Alles auswählen

8789808
4215256
--
8789688
8789712
1
---
8789808
8789832
4
---
Pb3.92
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Info von Fred dazu:
Fred hat geschrieben: This is a known issue, as it returns the String address instead of linkedlist element address. It will be probably changed in v4.0 but I will need to find a way to return the string address then, as it could
be useful someday.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

Ne Übersetzung fände ich angenehm....
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

CSprengel hat geschrieben:Ne Übersetzung fände ich angenehm....
Ok, ich versuch's mal (ohne Wörterbuch :wink:):

"Dies ist eine bekannte Verhaltensweise, da eine String-Adresse anstelle der Adresse eines LinkedList-Elements zurückgegeben wird. Dies wird sich möglicherweise in v4.0 ändern, ich muss dann jedoch noch eine Möglichkeit zur Rückgabe der String-Adresse finden, da es eines Tages nützlich sein kann."

(wie sagt man immer so schön: "ohne Gewähr")
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Antworten