[Monkey] Merkwürdiger Fehler bei Maps

Übersicht Andere Programmiersprachen Beginners-Corner

Neue Antwort erstellen

The Shark

Betreff: Merkwürdiger Fehler bei Maps

BeitragFr, Jul 08, 2011 20:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Folgender Code gibt "Ergebnis2" aus. Eigentlich sollte "Ergebnis1" rauskommen. Ich habe keine Ahnung wieso das nicht passt. Vielleicht mach ich einen dummen Anfängerfehler, ist mein erster Tag mit Monkey Wink (Ich arbeite mit der Demoversion)

Code: [AUSKLAPPEN]
Class strEntry
   Field entry:String
End

Class strMap
   
   Private
   
   Field sMap:StringMap<strEntry>
   Field tempEntry:strEntry
   
   Public
   
   Method New()
      Self.sMap = New StringMap<strEntry>
      Self.tempEntry = New strEntry
   End
   
   Method Set(Key:String,Value:String)
      tempEntry.entry=Value
      sMap.Set(Key,tempEntry)
   End
   
   Method Get:String(Key:String)
      Return sMap.Get(Key).entry
   End
End

Function Main()
   Local testmap:strMap= New strMap
   testmap.Set("Test1","Ergebnis1")
   testmap.Set("Test2","Ergebnis2")
   Print testmap.Get("Test1")
End


EDIT: Getter gekürzt
Rette deine Freiheit

Suco-X

Betreff: .......

BeitragSa, Jul 09, 2011 0:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

du erstellst tmpEntry nur einmal und benutzt es für 2 Einträge die unterschiedliche Eigenschaften haben sollen. Das kann ja nicht funktionieren.

Abgesehen davon schaut das ganze unnötig kompliziert aus. Wieso machst du nicht sowas wie hier:

Code: [AUSKLAPPEN]

Function Main()
   Local m:StringMap<StringObject> = New StringMap<StringObject>
   
   m.Set("Test1", "Ergebnis1")
   m.Set("Test2", "Ergebnis2")

   Print m.Get("Test1")
End


Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

The Shark

BeitragSa, Jul 09, 2011 10:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Hilfe, jetzt gehts. StringObject kannte ich nicht. Ist das einfach eine Klasse, die Strings speichert?

Die Kostruktion hab ich gebaut, weil ich in einem Tutorial folgendes gelesen hatte:Zitat:
Map – Map is used to link one object to another. Like this, Local map:= new Map<Car,Ship>. Car is the Key and Ship is the Value. You can’t use int,float,string with Map but there are special Maps for those cases, like this, Local map:= new StringMap<Car> this will create a Map with string as the Key, and Car as the Value.

Suco-X

Betreff: ......

BeitragSa, Jul 09, 2011 11:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.

Du kannst dir die Klasse StringObject in module/monkey/boxes.monkey anschauen. Das gleiche gibt es auch für Ínteger und Float.

Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Neue Antwort erstellen


Übersicht Andere Programmiersprachen Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group