[Monkey] TObject / Listen

Übersicht Andere Programmiersprachen Beginners-Corner

Neue Antwort erstellen

ToeB

Betreff: TObject / Listen

BeitragDo, Mai 26, 2011 15:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo !

Ich wollte mir endlich auch mal einen kleinen einblick in die Sprache Monkey gönnen und wollte ein sehr kleines Sample schreiben, welches ich in Blitzmax schon geschrieben habe und jetzt in Monkey umsetzten möchte. Mein erstes Problem ist hierbei : Es gibt keine vordefinierte TList (oder ich bin zu Blöd diese in der Dokumentation zu finden). Deswegen habe ich mir gedacht, schreibste dir die Klasse selber. Doch da stoße ich an ein neues Problem : Ich kann keine Allgemeine TList-Klasse schreiben, da es offensichtlich auch keine TObject Stamm-Klasse gibt, sodass ich damit verschiedene Klassen in die Liste integrieren kann.

Hat da jemand eine Lösung ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Xaron

BeitragDo, Mai 26, 2011 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Stammklasse heisst einfach nur Object und Listen gibt es auch, sie heißen: List Wink

Schau mal in den docs: /docs/modules/index.html#/monkey.list
Cerberus X - Monkey X Reloaded!

ToeB

BeitragDo, Mai 26, 2011 15:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah okay danke Very Happy

Wenn ich aber das hier schreibe :
Code: [AUSKLAPPEN]
Import monkey.list
...

Global Liste:List = New List


Meldet der dass er die Klasse 'List' nicht findet oO

Woran könnte das liegen ?

Edit Ah jetzt gehts :
Code: [AUSKLAPPEN]
Global Liste:= New List<Type>


Neues Problem : Ich möchte den Platz in der Liste in einer Node speichern. Dazu habe ich
Code: [AUSKLAPPEN]
Field Link:Node

Dort Meckert er mir an, das Node ein 'Duplicated identifier' ist, und in den modulen 'map' und 'list' vorkommt

Habe ich in der Hilfe nachgeguckt und dort steht :Code: [AUSKLAPPEN]
Class Node< T >
Worfür steht das T ?







mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Xaron

BeitragDo, Mai 26, 2011 16:45
Antworten mit Zitat
Benutzer-Profile anzeigen
T steht für Template. Du kannst den generischen Datentyp T also mit jedem beliebigen ersetzen.
Cerberus X - Monkey X Reloaded!

ToeB

BeitragDo, Mai 26, 2011 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Sry ich verstehs grad nicht.. Was muss ich da hinschreiben ^^ ?
Danke auf jedenfall !

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

mpmxyz

BeitragDo, Mai 26, 2011 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
T ist sozusagen ein Parameter für die Klasse bzw. eher für deren Objekte. Damit kann man in dem Fall definieren, welcher Datentyp in jedem Listeneintrag gespeichert wird.
Daher musst du hier genau so wie mit der Liste vorgehen. ("<Type>" an den Typ anhängen)
mfG
mpmxyz
PS: Das sind auf Java basierende Monkey-Spekulationen. Wink
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

ToeB

BeitragFr, Mai 27, 2011 2:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hatte ich mir zuerst auch gedacht, aber wenn ich schreibe :
Code: [AUSKLAPPEN]
Field Link:Node<TBall>

(Wobei sich Field in der Klasse TBall befindet) Gibt es trotzdem eine Fehlermeldung...

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Xaron

BeitragFr, Mai 27, 2011 7:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Willst Du denn wirklich die Monkey Node verwenden oder ist Deine Node was anderes? Wenn ja, was genau hast Du damit vor? Was meinst Du mit "Platz in der Liste speichern"? Vllt. kannst Du ein etwas auführlicheres Beispiel geben? Smile
Cerberus X - Monkey X Reloaded!

ToeB

BeitragFr, Mai 27, 2011 12:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, ich versuchs mal Very Happy

Also in Blitzmax würde dieser Code ja Funktionieren :
BlitzMax: [AUSKLAPPEN]
Type TKlasse
Global Liste:TList = CreateList()

Field Link:TLink
Method New( )
Link = Liste.AddLast( Self )
End Method

Method Remove( )
Link.Remove( )
End Method
End Type


Also eine Globale Liste für die Klasse "TKlasse" und ein jeweiliger Link in der Klasse für die eigene Position in der Globalen Liste. Schreib ich das Gleiche jetzt in Monkey, gibt er mir bei Node<TKlasse> eine Fehlermeldung :
Code: [AUSKLAPPEN]
Class TKlasse
   Global Liste:= New List<TKlasse>
   
   Field Link:Node<TKlasse>
   Method New()
      Link = Liste.AddLast( Self )
   End Method
   
   Method Remove()
      Link.Remove()
   End Method
End Class


Hier genau das Selbe, einmal ne Globale Liste von "TKlasse" und einen Jeweiligen Link (Node) zu dem Eintrag in der Liste, wo sich das Object dann befindet.

Das brauch ich nämlich, um die Objecte auch irgendwie wieder Löschen zu können, sonst krig ich die aus der Liste auch nur umständlich wieder raus..

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Xaron

BeitragFr, Mai 27, 2011 13:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah jetzt verstehe ich! Das Problem ist, dass Node sowohl in der Map als auch in der Liste definiert ist.

Ersetze Zeile:
Code: [AUSKLAPPEN]

Field Link:Node<TKlasse>


mit:
Code: [AUSKLAPPEN]

Field Link:list.Node<TKlasse>


Eigentlich sollte Monkey den Unterschied aber begreifen, da die Node in der Map 2 Parameter hat... Mal bei Mark anfragen. Wink
Cerberus X - Monkey X Reloaded!

ToeB

BeitragFr, Mai 27, 2011 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank ! es funzt jetzt !

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Neue Antwort erstellen


Übersicht Andere Programmiersprachen Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group