Utwórz wiele obiektów (konstruktor synchroniczny)
(newobjects n)
newobjects n [instrukcje]
(newobjects n [instrukcje] wyrażenie1 wyrażenie2 ...)
newobjects n funkcja
(newobjects n funkcja wyrażenie1 wyrażenie2 ...)
Tworzy n nowych obiektów jednocześnie. Lista instrukcji lub funkcja podane jako argument są
wykonywane jako konstruktor dla każdego nowego obiektu. Konstruktory są wykonywane równolegle. Żółw/obiekt wywołujący
instrukcję newobjects
czeka na zakończenie wykonania wszystkich konstruktorów.
Argumenty konstruktora mogą być podane jako opcjonalne wyrażenia (wszystkie nowe obiekty użyją tych samych wartości
wyrażeń).
Obiekt w POOL jest uproszczoną wersją żółwia. Obiekty nie posiadają reprezentcji graficznej i nie mogą obsługiwać
zdarzeń związanych z grafiką (np. kliknięć myszy). Dzięki temu obiekty zajmują mniej pamięci, są szybciej tworzone
i szybciej wykonują polecenia.
Przykład 1:
"t := (newobjects 3)
print who
print children
foreach "ti :t [(print who @ :ti parent @ :ti )]
Rezultat wykonania:
first
[o1 o2 o3]
o1 first
o2 first
o3 first
Przykład 2:
"t := newobjects 3 [
"x := random 10
print who
]
foreach "ti :t [print :x @ :ti]
Rezultat wykonania:
o1
o2
o3
2
5
3
Przykład 3:
to model :dt
repeat 3 [print who wait :dt]
"x := :dt
end
"t := (newobjects 2 $model 50)
foreach "ti :t [print :x @ :ti]
Rezultat wykonania:
model1
model2
model1
model2
model1
model2
50
50
Zobacz także:
Żółw - obiekt
Synchronizacja wielu obiektów
Spis treści