Szintaxis
Függvény: visszatérési értékkel rendelkező számítási eljárás.
Függvényt deklarációja:
def név(argumentumok):
  return valami;
- A def kulcsszó a define rövidítése, így kezdődik egy függvény definíciója
- A név a függvény neve, amivel hivatkozni tudunk rá, nem lehet benne szóköz, nem kezdődhet számmal.
- (argumentumok) a függvény argumentumai, amit a hívásakor megadunk
- Ez alatt a függvény kódja található.
- A végén pedig a visszatérési értéke. A return kulcsszó jelezi a visszatérési értéket.
- Meghívása: függvény_neve(argumentumok)
Mint a változóknál, a függvényeknél is képes a Boo kitalálni, hogy milyen típusú a visszatérési érték:
i = 5
def Hello():
return "Hello, World!"
def Hello() as string:
return "Hello, World!"
Ez a két függvény ugyanazt az eredményt adja, teljesen megegyeznek egymással. Egyértelműen jelezni kell a függvény visszatérési értékét!
Egy függvénynek lehet egy, több különböző illetve semmilyen (void) visszatérési értéke. Ha nincs visszatérési értéke, akkor: return void vagy csak return, illetve return elhagyása is lehetséges.
Paraméterátadás
Argumentum: Egy függvény a program futása során bárhol meghívható, más bemenő adatokkkal.
A Boo-ban minden objektum, referencia szerinti paraméterátadás van. Ha egy függvénynek string a paramétere, és meghívása során nem azt kap, akkor a Boo fordítási idejű hibát fog dobni rá.
Túlterhelés
Túlterhelés: Ugyanazzal a névvel, több fajta argumentumlistával szeretnénk használni egy függvényt. A fordítóprogram fogja eldönteni, hogy melyik az közülük, amely éppen azon a helyen szükséges.
def Hello():
return "Hello, World!"
def Hello(name as string):
return "Hello, ${name}!"
def Hello(num as int):
return "Hello, Number ${num}!"
def Hello(name as string, other as string):
return "Hello, ${name} and ${other}!"
print Hello()
print Hello("Monkey")
print Hello(2)
print Hello("Cat", "Dog")
Hello, World!
Hello, Monkey!
Hello, Number 2!
Hello, Cat and Dog!
Az argumentum lehet egy változó is, amely nem egy adatra, hanem egy adatokból álló listára mutat.
def Test(*args as (object)):
return args.Length
print Test("hey", "there")
print Test(1, 2, 3, 4, 5)
print Test("test")
a = (5, 8, 1)
print Test(*a)
2
5
1
3
A * azt mutatja, hogy tetszőleges számú!