Допустим, у меня есть очень простой класс актера, который получает любое сообщение и выводит его на консоль.
class SimpleActor extends Actor{
def receive: Receive = {
case message =>
println(s"[${this}][${self}] received message: ${message}")
}
}
val simpleActor = actorSystem.actorOf(Props[SimpleActor], "simpleActor")
simpleActor ! "Hey"
Как видите, я использую здесь this
и self
, и оба имеют разные значения.Его вывод выглядит примерно так:
[pkg.ActorRunner$SimpleActor@65cca69][Actor[akka://ActorDemo/user/simpleActor#934141660]] received message: Hey
Я хочу понять разницу между self
и this
, потому что в сложных сценариях (производственная система), если субъект нарушается, например: выдает исключение, чем Iдумаю значение для this
меняется.