Я довольно новичок в Scala. Я пытаюсь понять, как/если 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 для обоих сообщений ответа? Есть ли способ сохранить динамическое поведение привязки при использовании закрытий в сообщениях?
Спасибо!