2014-09-26 28 views
7

Czy jest jakiś sposób, aby to:Scala odwołanie do obiektu uchwycenia, jednocześnie korzystając extractory

// I'm using akka, perhaps there's a magic variable inside receive I can use 
def receive = { 
    case Message(channel, data, sender) => { 
    // do stuff with channel, data, sender 
    // Oops, I want to reuse message, so I have to build a new one 
    foo ! Message(channel, data, sender) 
    } 
} 

Into coś takiego:

def receive = { 
    case x: Message(channel, data, sender) => { 
    // do stuff with channel, data, sender 
    // Now I want to reuse message 
    foo ! x 
    } 
} 

Odpowiedz

17

Zastosowanie @ również przechwytywać cały obiekt.

case x @ Message(channel, data, sender) => { 
    // do stuff with channel, data, sender 
    foo ! x 
} 
+0

Dzięki! Naprawdę jesteś na topie podstawowych pytań w Scali! – Hamy