Я довольно новичок в Скале.
Я пытаюсь понять, как / если scala выполняет динамическое связывание, когда замыкание передается как часть сообщения актеру.
Я использую Akka 1.2 с Scala 2.9.
У меня есть следующий сегмент кода (изменено с http://gleichmann.wordpress.com/2010/11/15/functional-scala-closures/)
var minAge = 18
val isAdult = (age: Int) => age >= minAge
actor ! answer(19, isAdult)
minAge = 20
actor ! answer(19, isAdult)
На стороне актера он просто применяет isAdult к первому параметру и печатает результат.
Поскольку Scala использует динамическое связывание (как мне сказали), я ожидал
true
false
но как-то получается
false
false
Так верно ли, что scala статически связывает переменную и принимает 18 в качестве значения minAge для обоих ответных сообщений? Есть ли способ сохранить динамическое связывание при использовании замыканий в сообщениях?
Спасибо!