Oppimateriaalin copyright © 2009 Arto Wikla.
Tämän oppimateriaalin käyttö on sallittu vain yksityishenkilöille
opiskelutarkoituksissa. Materiaalin käyttö muihin tarkoituksiin,
kuten kaupallisilla tai muilla kursseilla, on kielletty.
(Muutettu viimeksi 18.3.2009)
Sulkeumaesimerkki
Sulkeuma (closure)
def eka(p: => Unit) {
var x ="olen ekan x"
println("--- eka alkaa ---")
p // tokan paikalliset eivät näy tänne, mutta sulkeuma
// käydään suorittamassa kutsukohdan ympäristössä
println(x)
println("--- eka päättyy ---")
}
def toka {
println("--- toka alkaa ---")
var x ="olen tokan x"
eka({println(x); x = "tokan x on muutettu!"}) // sulkeuma parametrina
println(x) // viittauksia paikallisiin
println("--- toka päättyy ---")
}
// pääohjelma:
toka
Ohjelma tulostaa:
--- toka alkaa ---
--- eka alkaa ---
olen tokan x
olen ekan x
--- eka päättyy ---
tokan x on muutettu!
--- toka päättyy ---
Takaisin sisältösivulle.