Oppimateriaalin copyright © 2011 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 9.3.2011)
Sulkeumaesimerkki Scalalla
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 funktioliteraalina
println(x) // viittauksia paikallisiin tunnuksiin
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.