Благодаря этому сообщению, я разобрался с зависимыми типами методов. У меня есть структура, похожая на следующую
trait Environment{
type Population <: PopulationBase
protected trait PopulationBase
def evolveUs(population: Population): Population
}
object FactoredOut{
def evolvePopulation(env: Environment)(prevPopulation: env.Population): env.Population = {
env.evolveUs(prevPopulation)
}
}
Теперь я хочу начать использовать акторов для распространения работы в части FactoredOut
по кластеру. Для этого мне нужен способ передачи неизменяемых сообщений, которые содержат Environment
.
Очевидно следующее не работает, но демонстрирует то, что я пытаюсь сделать
object Messages{
case class EvolvePopulation(env: Environment)(prevPopulation: env.Population)
}
Как правильно передать население и окружающее его окружение?
(Можно было бы добавить тег типа зависимого метода, но у меня недостаточно баллов, чтобы добавить тег «новый»)