To jest coś, co dowiedziałem się w scala i działa i nie mogę zrozumieć dlaczego, czy ktoś może wyjaśnić, dlaczego to działa?Samo odwołanie się do val podczas definicji w scala
Zasadniczo można użyć odniesienia do val a ja nadal zdefiniowaniem (bo moje inne obiekty/Aktorzy wziąć go jako parametr)
val backbone: ActorRef = context.actorOf(
F_BackBone.props(
context.actorOf(F_PictureHandler.props(backbone)),
context.actorOf(F_UserHandler.props(backbone)),
context.actorOf(F_PageProfileHandler.props(backbone))
)
)
będę się błąd kompilatora, jeśli don” t jawnie zdefiniować typ, który ma sens.
Ale to nie jest rekurencyjna definicja, to referencja przeszła zanim została skonstruowana –
Niemniej jednak powiedziałbym, że komentarz dodany w drugim wątku przez Archeg dotyczy: "[...] zmienna' a' jest tworzona po wpisaniu 'val a: Int', [.. .] ". Masz typ zdefiniowany przez użytkownika, a nie Int, więc 'kręgosłup' zostanie zainicjowany na' null' po prawej stronie –
@ ChrześcijanieHirsch Mam takie samo zrozumienie. Co oznacza, że 'context.actorOf (F_UserHandler.props (backbone))' otrzyma 'szkielet' jako 'null', chyba że jest on oceniany leniwie (call-by-name, leniwy val itd.). Być może potencjalny błąd jest tutaj wprowadzany przez 'null'. – tuxdna