Willkommen
- Details
- Geschrieben von: admin
- Kategorie: Willkommenstexte
-
Auch verfügbar:
- Zugriffe: 7363
Willkommen auf der BeSly, der Haiku Wissensbasis.
Diese Seite wurde erstellt, um anderen Benutzern und Entwicklern zu helfen. Was zu Beginn, im August 2004, mit ausschließlich deutschsprachigen Übersetzungen und kleinen Anleitungen begonnen hat, ist heute eine umfangreiche, informative, mehrsprachige Wissensbasis. Sie enthält diverse Hilfestellungen zur Installation, Programmbeschreibungen, Programmierung und Systemeinstellungen.
Dabei wurde immer viel Wert auf die einfach zu verstehenden Aufbau und Beschreibung der Anleitungen geachtet. Im Laufe der Jahre sind auch viele Ideen der Benutzer mit eingeflossen, wie z.B. die Angabe, für welches System die jeweilige Anleitung gedacht ist.
Die Menüstruktur ist so aufgebaut, dass alle Anleitungen nach deren Programmzugehörigkeit sortiert angezeigt werden. Außerdem kann man die Suchfunktion nutzen um Anleitungen zu finden.
Es gibt auch eine kleine Software (BeSly Tutorial Finder), die das Suchen von BeSly Anleitungen ermöglicht. Hier werden, wie auf der Webseite, alle Programme der Programmzugehörigkeit, aber auch nach Systemart, Sprache oder Autoren angezeigt. Dabei werden auch die kleinsten Anleitungen mit einbezogen, die man sonst nur in "Tipps und Tricks" Auflistungen findet.
Durch die Ähnlichkeit zwischen den Systemen, die alle auf der gleichen Grundlage oder dessen Nachbau sind, sind viele Anleitungen auf mehreren Systemen anwendbar.
Wer diesem Projekt helfen möchte, kann dies gerne in Form von eigenen Anleitungen, Beschreibungen oder Übersetzungen machen. Auch Ideen oder Kritik sind willkommen.
Durch den Relaunch der BeSly ist es jetzt möglich, dass die Nutzer die Anleitungen selbst im Webinterface schreiben. Auch das Hochladen von Bildern ist kein Problem. Einzige Bedingung ist das Anmelden auf der BeSly. Eure Daten werden von uns nicht weitergeben.
![]() |
Die aktuelle BeSly beinhaltet ausschließlich Haiku spezifische Inhalte. Die Inhalte zum Thema Be OS und Zeta befinden sich auf der Vorgänger- Version dieser Seite. Folgen Sie dazu dem Link zur alten BeSly (OLD BeSly) auf der Startseite. |
Wir unterstützen die Be OS, Zeta, Haiku Community seit August 2004
YAB Namespace / Library
- Details
- Geschrieben von: admin
- Kategorie: yab
-
Auch verfügbar:
- Zugriffe: 145
1. Übersicht
YAB ermöglicht die Aufteilung eines Programms auf mehrere externe Libraries.
Eine Library kann enthalten:
- Variablen
- Stringvariablen
- Arrays
- Subroutinen
- exportierte Subroutinen
Eine Library wird mit import eingebunden. Ihre von außen verfügbaren Bestandteile werden über den Namespace der Library angesprochen.
|
import test1
n=test1.test1()
|
2. Libraries und Namespaces
Eine oder mehrere Libraries können importiert werden:
| import test1 import test2 import test3 |
Jede Library besitzt ihren eigenen Namespace. Dadurch können gleichnamige Variablen und Subroutinen verschiedener Libraries eindeutig unterschieden werden.
| a=test1.value b=test2.value n=test1.test() m=test2.test() |
Der Namespace wird beim Zugriff vor den Namen des gewünschten Bestandteils gesetzt:
|
namespace.sub()
namespace.sub$()
namespace.variable
namespace.variable$
|
3. Exportierte Subroutinen und Rückgabewerte
Eine Subroutine, die außerhalb ihrer Library aufgerufen werden soll, wird mit export definiert:
|
export sub test1()
return 10
end sub
|
Der Aufruf erfolgt über den Namespace:
| n=test1.test1() |
|
export sub test2$()
return "Hallo"
end sub
|
| text$=test2.test2$() |
Eine mit $ benannte Subroutine kann dabei auch einen numerischen Wert zurückgeben. Das $ bestimmt also nicht zwingend den Datentyp des return-Wertes.
Rückgabewerte können direkt zugewiesen oder unmittelbar weiterverarbeitet werden:
|
n=test.get_number()
text$=test.get_text$()
print arraydim(test.get_array())
|
4. Parameterübergabe
Exportierte Subroutinen können einen oder mehrere Parameter erhalten.
|
export sub add(zahl)
return zahl*2
end sub
|
| n=test.add(10) |
|
export sub add(zahl1,zahl2)
return zahl1+zahl2
end sub
|
| n=test.add(10,20) |
Dabei können auch unterschiedliche Werte übergeben werden:
|
export sub text$(text$,zahl)
return text$+str$(zahl)
end sub
|
| text$=test.text$("Wert: ",10) |
5. Zugriff auf Variablen
Variablen einer Library können über den Namespace angesprochen werden.
Numerische Variable:
| n=test1.b |
| text$=test1.d$ |
|
namespace.variable
namespace.variable$
|
6. local-Variablen
Eine mit local deklarierte Variable gehört zur jeweiligen Subroutine.
|
counter=100 export
sub test()
local counter
counter=counter+1
return counter
end sub
|
| counter |
und:
| local counter |
Der Zugriff:
| test.counter |
Die lokale Variable wird bei jedem erneuten Aufruf der Subroutine neu initialisiert.
Beispiel:
|
export sub test()
local counter
counter=counter+1
return counter
end sub
|
| test() → 1 test() → 1 test() → 1 |
7. Zugriff einer Library auf andere Libraries
Eine Library kann auf exportierte Subroutinen und Variablen anderer Libraries zugreifen.
Beispiel:
|
export sub test5()
a=test1.test1()
b$=test2.test2$()
return a
end sub
|
|
n=test1.b
text$=test2.d$
|
Eine Library kann somit beispielsweise:
|
a=test1.test1()
b=test1.b
|
8. Cross-Namespace-Aufrufe
Mehrere Libraries können miteinander kombiniert werden.
Beispielsweise:
|
main.yab
¦
+-- test1
+-- test2
+-- test5
|
|
export sub test5()
a=test1.test1()
b$=test2.test2$()
return a
end sub
|
Eine Library kann dabei sowohl auf Subroutinen:
| test1.test1() |
| test1.b |
9. Arrays
Libraries können Arrays enthalten und Arrays über exportierte Subroutinen zurückgeben.
Beispiel:
|
dim numbers(3)
numbers(1)=10
numbers(2)=20
numbers(3)=30
|
|
export sub test_numbers()
return numbers
end sub
|
|
print arraydim(test_array.test_numbers())
print arraysize(test_array.test_numbers(),1)
|
|
print arraydim(test_array.test_id$())
print arraysize(test_array.test_id$(),2)
|
Beispielsweise:
| arraydim(test_array.test_numbers()) |
Ebenso:
| arraysize(test_array.test_numbers(),1) |
|
arraydim(test_array.test_id$())
arraysize(test_array.test_id$(),2)
|
10. Variablen und Subroutinen als gemeinsamer Namespace
Eine Library stellt über ihren Namespace unterschiedliche Bestandteile zur Verfügung.
Beispiel:
|
test1
¦
+-- test1()
+-- value
+-- text$
+-- Array
|
|
n=test1.test1()
n=test1.value
text$=test1.text$
print arraydim(test1.get_array())
|
11. Bestätigte Eigenschaften
Die Namespace-Funktionalität wurde anhand einer Testreihe mit insgesamt 16 Tests überprüft.
Dabei wurden folgende Bereiche getestet
![]() |
|
|
arraydim(test_array.test_numbers())
Arraysize(test_array.test_numbers(),1)
arraydim(test_array.test_id$())
arraysize(test_array.test_id$(),2)
|
12. Kurzreferenz
| Funktion | Syntax |
|---|---|
| Library importieren | import name |
| Sub exportieren | export sub name() |
| $-Sub exportieren | export sub name$() |
| Sub aufrufen | name.sub() |
| $-Sub aufrufen | name.sub$() |
| Variable | name.variable |
| Stringvariable | name.variable$ |
| Ein Parameter | name.sub(wert) |
| Mehrere Parameter | name.sub(wert1,wert2) |
| Rückgabewert | return wert |
| Array zurückgeben | return array |
| Arraydimension | arraydim(name.sub()) |
| Arraygröße | arraysize(name.sub(),dimension) |
| Library-Variable | name.variable |
| Library-Stringvariable | name.variable$ |
13. Merksatz
![]() |
import bindet eine Library ein, export stellt eine Subroutine nach außen bereit und der Namespace ermöglicht den eindeutigen Zugriff auf die Variablen und Subroutinen der Library. |
|
import meine_lib
n=meine_lib.berechnen(10)
text$=meine_lib.text$("Hallo")
wert=meine_lib.variable
text$=meine_lib.text$
print arraydim(meine_lib.get_array())
|
Damit können YAB-Programme in mehrere Libraries aufgeteilt und diese Libraries über Namespaces miteinander verbunden werden.


