2009-06-29 26 views
6

Ben aradığında:Scala, eksik argümanları bir vaka sınıfına nasıl dolduracak?

actor_ ! Exit 

bu bir yapım haline geliyor Nasıl: Bir uzak (istemci) aktör bu çağırdığınızda Özellikle

case class Exit(from: AbstractActor, reason: AnyRef) 

, bunu nasıl sahip olanı

'[email protected](10.10.7.90,8366) 
: from özelliği bir aktör burada sunucu Exit bir örneğini aldığı, bir uzak uç (sunucu) aktör link ed edilmiş

Temel olarak, bu uzak istemci-aktör nesnesinde nasıl bir tanıtıcı bulabileceğimi bulmak istiyorum!

cevap

2

Gönderdiğiniz şey, Exit numaralı tekil nesnedir. Scala API'sında, sadece sınıfları aşağı kaydırın ve nesnelere bakın.

object Exit 
extends (AbstractActor, AnyRef) => Exit 

Şimdi, kodunuzu görmedim, bu yüzden onu nasıl kullandığınızı bilmiyorum. Bununla birlikte, bu nesnenin Exit (aslında), iki parametre alan ve onlar tarafından oluşturulan bir Exit vaka sınıfı döndüren bir işlev olduğuna dikkat edin. Ayrıca dava sınıfının ifadesine göre bazı şeyler koyacak. Veya diğer bir deyişle, Exit.apply (x, y) (Exit uygulanmakta olan işlev) Exit (x, y) (Exit sınıfının kurucusu) ile aynı sonuca sahiptir. Ancak bir sınıfı geçemiyorken, bir nesneyi geçebilirsiniz.

+0

Ah; IDEA beni yanlış sınıfta gösteriyor. Soru hala duruyor; AbstractActor ve msg nereden geliyor? Ve dava sınıfının bir örneği olarak nasıl sona erer? –

+0

Kodum temel olarak "actor_! Exit" dir. Herhangi bir değişkene hiçbir şey iletmiyorum. Ve yine de aktör_, Exit (from, msg) case sınıfını bazı güzel ve doğru değerlerle göndermeye başlıyor. Ve apply() yöntemi, bir apply() yöntemini bildirmediğinde ikili işlevi nasıl genişletir? –

+0

Ah, ancak Exit bir apply() yöntemi bildiriyor! Bu tür "(AbstractActor, AnyRef) => Çıkış", "Function2 [AbstractActor, AnyRef, Exit]" ile aynı şeydir. Function2 bir başvuruyu bildirdiğinden, o zaman Çıkış olmalıdır. –

İlgili konular