WML-Tutorial
[ Inhaltsverzeichnis ]WMLScript
 Funktionen
Funktion in WMLScript
allgemeine Syntax einer Funktion
Rückgabewert einer Funktion
lokale Funktionen
externe Funktionen
Bibliotheks Funktionen

Funktionen in WMLScript

Mit Hilfe von Funktionen kann man mehrere Anweisungen in einem Block zusammenfassen. Funktionen können von anderen Programmteilen aufgerufen werden, wobei auch die Übergabe von Werten über Parameter an die Funktion möglich ist. In WMLScript unterscheidet man zwischen 3 verschiedenen Arten von Funktionsaufrufen ( lokale, externe und Bibliotheks Funktionsaufrufe ). Von einer Funktion wird in WMLScript immer ein Wert zurückgegeben. Man kann einen bestimmten Wert durch eine Anweisung innerhalb der Funktion zurückgeben lassen, oder falls dies nicht speziell angegeben wurde, gibt die Funktion eine leere Zeichenkette zurück.


allgemeine Syntax einer Funktion

Die allgemeine Syntax einer Funktion lautet in WMLScript :

[extern] function FunktionsName ( [Parameterliste] )
{

} ;
	

Das optionale Schlüsselwort extern kennzeichnet eine Funktion, die auch von ausserhalb der eigenen Compilation Unit aufgerufen werden kann. Das Schlüsselwort function ist für die Deklaration einer Funktion in WMLScript unbedingt erforderlich. Funktionen in WMLScript können nicht verschachtelt werden. Der Funktionsname muss natürlich auch angegeben werden. Durch ihn kann die Funktion dann später aus der WML-Datei oder aus einer anderen Funktion aufgerufen werden. Der Funktionsname muss in seiner Compilation Unit eindeutig sein. Die Angabe einer Parameterliste ist optional. Mit ihr kann man der Funktion bestimmte Werte beim Aufruf mit Hilfe der Parameter übergeben. Die Parameter werden alle mit einem 'Call-By-Value' durchlaufen, d.h. das die evtl. Änderungen der Werte der Parameter innerhalb der Funktion nicht zu Änderung der Werte ausserhalb dieser Funktion führen. Der Aufuf einer Funktion muss mit genau der selber Anzahl der Parameter geschehen, mit der die Funktion deklariert wurde. Darauf folgt der Funktionsblock { }, in dem die Anweisungen der Funktion stehen, die beim Aufruf ausgeführt werden sollen. Das abschliessende Semikolon ; ist optional.

Beispiel :


extern function KBtoMB(kilobyte) 
{ 
  var mb = kilobyte / 1024;		

  mb = String.toString(mb);

  Dialogs.alert(mb + " MB");
}

Rückgabewert einer Funktion

Funktionen in WMLScript geben immer einen Wert zurück. Wird er nicht explizit durch die return-Anweisung angegeben, so ist der Rückgabewert eine leere Zeichenkette. Die return-Anweisung hat folgenden Syntax:

return rueckgabewert;

Das Schlüsselwort return zeigt an, daß der Wert rueckgabewert an den Aufrufer der Funktion zurückgegeben werden soll.

Beispiel :


extern function rueck(zahl) 
{ 
  var x = 100;
	
  var sum = x + zahl;
	
  return sum;
}

lokale Funktionen

Ein lokaler Funktionsaufruf bezieht sich auf Funktionen, die in der selben Compilation Unit deklariert sind. Dies bedeutet, daß sich der Aufrufer der Funktion selbst in der Compilation Unit befinden muss. Der Syntax des Aufrufs einer lokalen Funktion sieht folgendermassen aus :

FunktionsName( [Parameterliste] )
	

Im nachfolgenden Beispiel befinden sich die Funktionen mit den Funktionsnamen eins und zwei in der selben Compilation Unit lokal.wmls. In der Funktion eins geschieht ein lokaler Funktionsaufruf der Funktion zwei durch das Codefragment zwei("lokaler Funktionsaufruf");.

Beispiel :

WMLScript-Datei (lokal.wmls)


extern function eins()
{
  zwei("lokaler Funktionsaufruf"); // --> lokaler Funktionsaufruf der Funktion zwei
}

function zwei(nachricht)
{
  Dialogs.alert(nachricht);
}

externe Funktionen

Ein externener Funktionsaufruf bezieht sich auf Funktionen, die nicht in der selben Compilation Unit liegen wie der Aufrufer der Funktion selber. Diese (externen) Funktionen sind dann in anderen Compilation Units abgelegt. Der Aufruf einer externen Funktion hat die folgende Syntax :

ExternerScriptName#FunktionsName( [Parameterliste] )
	

Die Aufgabe von FunktionsName und mögliche Parameterliste ist bekannt. Der ExternerScriptName ist ein symbolischer Bezeichner für ein WMLScript / Compilation Unit, der auf das WMLScript / Compilation Unit verweist. Diese Zuordung muss allerdings noch deklariert werden. Die Deklaration des ExternerScriptName hat die folgenden Syntax :

use url ExternerScriptName "http://www.host.de/wmlscript.wmls"
	

Im nachfolgenden Beispiel wird in der WMLScript Datei extern.wmls der ExternerScriptName deklariert und ihm die URL auf eine Compilation Unit mit Mathematik-Funktion zugewiesen. In der Funktion berechne wird die externe Funktion quersumme durch das Codefragment mathe#quersumme(1820) aufgerufen.

Beispiel :

WMLScript-Datei (extern.wmls)


use url mathe "http://www.host.de/mathematik.wmls";

extern function berechne()
{
  var qsum = 0;
	
  qsum = mathe#quersumme(1820);
	
  Dialogs.alert(qsum);	
}

 

WMLScript-Datei (http://www.host.de/mathematik.wmls)


extern function quersumme(zahl)
{
  var qs = 0;

  // berechne die Quersumme
	
  return qs;
}

Bibliotheks Funktionen

Ein Funktionsaufruf von Bibliotheksfunktionen bezieht sich auf die Standardbibliotheken von WMLScript. Der Aufruf einer Bibliotheksfunktion hat folgenden Syntax:

BibliotheksName.FunktionsName( [Parameterliste] )
	

Der BibliotheksName ist der Name einer Standardbibliothek ( Lang,Float,String,URL,WMLBrowser,Dialogs ) von WMLScript. Der FunktionsName ist ein spezieller Name einer Funktion, die in der angegebenen Standardbibliothek von WMLScript zur Verfügung gestellt wird. BibliotheksName und FunktionsName werden durch einen Punkt (.) getrennt.
Das folgende beispiel soll den Aufruf von Bibliotheksfunktionen kurz erläutern.

Beispiel :

WMLScript-Datei (bibliothek.wmls)


extern function bibotest()
{	
  Dialogs.alert("Hallo Welt");	
   
  var x = String.length("WML");
  
  WMLBrowser.go("http://wap.ffh.de");
}