Self ? *GELÖST*

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

gamble

Betreff: Self ? *GELÖST*

BeitragSa, Apr 23, 2005 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

kann mir jemand kurz den Verwendungszweck von Self anhand eines kleinen Beispiels erklären? Verstehe den Befehl nich ganz Wink
  • Zuletzt bearbeitet von gamble am So, Apr 24, 2005 10:36, insgesamt einmal bearbeitet

Jolinah

BeitragSa, Apr 23, 2005 23:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Self ist eigentlich nur eine Referenz auf die aktuelle Instanz eines Types:

Code: [AUSKLAPPEN]

Type test

  Field x
  Field y

  Method Move(x, y)
    Self.x = x
    Self.y = y
  End Method

End Type


Verwendet wird es meistens wenn Fields gleich heissen wie die Parameter einer Funktion.

Code: [AUSKLAPPEN]
x = x


Dies würde ja keinen Sinn ergeben. Mit Self.x kann man in diesem Fall auf das Field x der aktuellen Instanz zugreifen.

Self kann aber auch benutzt werden um das Objekt einer Funktion zu übergeben etc. :

Code: [AUSKLAPPEN]

Type test

  Method Get:test()
    Return Self
  End Method

End Type

Local t:test = new test

Local t2:test = t.Get()


Wäre genau das gleiche wie t2 = t
 

gamble

BeitragSo, Apr 24, 2005 9:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, jetzt wird mir einiges klar Wink

Bevor ich noch einen Thread aufmache poste ich die Frage lieber hier:

Wo ist each hin? Habe nur EachIn gefunden, welches aber auch nicht mit Types funktioniert ?

Mr.Keks

BeitragSo, Apr 24, 2005 10:28
Antworten mit Zitat
Benutzer-Profile anzeigen
in bmax musst du dir listen selber anlegen. es sind nicht mehr alle einträge eines types automatisch eine liste...
MrKeks.net

Jolinah

BeitragSo, Apr 24, 2005 10:33
Antworten mit Zitat
Benutzer-Profile anzeigen
EachIn bezieht sich auf eine Liste bzw. ein Array und wird benutzt um durch die Objekte zu steppen (Iterieren?).

Types sind in Bmax ja nicht automatisch in einer Liste. Das heisst man kann von einem Type mehrere unabhängige Listen erstellen.

Bsp für Array:

Code: [AUSKLAPPEN]

Local a:Int[] = New Int[20]

For Local b:Int = EachIn a
  b = 10
Next
 
For Local b:Int = EachIn a
  Print b
Next


Bsp für Liste:

Code: [AUSKLAPPEN]

Local Werte:TList = CreateList()

ListAddLast(Werte, 10)
ListAddLast(Werte, 50)

For Local b:Int = EachIn Werte
  Print b
Next


In die Listen kann man dann statt Int halt Type Instanzen reinmachen.
 

gamble

BeitragSo, Apr 24, 2005 10:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah, okay. Dankeschön Wink

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group