다음 코드는 스칼라스칼라 액터에서 '자아'는 어떻게 작동합니까?
에서 프로그래밍에서 가져import actors.Actor
object NameResolver extends Actor {
import java.net.{InetAddress, UnknownHostException}
def act() {
react {
case (name: String, actor: Actor) =>
actor ! getIp(name)
act()
case "EXIT" =>
println("Name resolver exiting.")
// quit
case msg =>
println("Unhandled message: " + msg)
act()
}
}
def getIp(name: String): Option[InetAddress] = {
try {
Some(InetAddress.getByName(name))
} catch {
case _: UnknownHostException => None
}
}
}
가 먼저 내 반응 {} 재귀 호출이 무엇을 행동 않습니다()는 무엇입니까? 모든 경우가 실패하고 결국 아무것도하지 않고 끝까지 빠져 나가는 것처럼 보입니다. 이 책에서 두 번째로
, 그들은NameResolver ! ("www.scala-lang.org", self)
경우 '자기'에서 오는가 다음 REPL 예를 사용할 수 있습니까? 나는 당신이 EXIT
메시지를 전송하지 않는 한
def main(args: Array[String]) {
NameResolver.start()
NameResolver ! ("www.scala-lang.org", Actor.self)
}
가 위, 재귀
"The above does not work"에 대해 자세히 설명해 주시겠습니까? –