2010-12-04 12 views
0

Gibt es eine Möglichkeit, einige zusätzliche Parameter an die Funktion zu übergeben, die an Scalas List.foldRight geliefert wird?Übergeben von zusätzlichen Parametern an foldRight

Einige Beispiel-Code:

def createActorPool[T](implicit actor: Manifest[T], poolSize: Int): List[Supervise] = { 
    (1 to poolSize).foldRight(List[Supervise]()) { 
    (idx, list) => { Supervise(actorOf[actor], Permanent) :: list } 
    } 
} 

Das Objekt Ich bin an ist actor, was jedoch nicht sichtbar ist, wenn Beaufsichtigen wird verwendet, zu konstruieren.

S.S .: Ich bin ziemlich neu in Scala, also bitte entschuldigen Sie meine Entschuldigung, wenn dies eine FAQ ist (trotz umfangreichem Googlen ohne entsprechende Treffer).

Antwort

3

Ich verstehe nicht wirklich Ihr Problem. Die Funktion, die an foldRight übergeben wird, ist frei zu verweisen und verwenden Sie alles, was Sie in Umfang haben. Ist das nicht genug?

+0

Hm ... Es ist. Wahrscheinlich habe ich eine Compiler-Fehlermeldung falsch interpretiert (das IDEA Scala Plugin beschwerte sich über ein nicht auflösbares Symbol), so dass ich den Eindruck hatte, dass der Schauspieler nicht sichtbar wäre. Danke für die Klärung! –

2

In Scala werden die Zeichen und ] nur für Typen verwendet. In dem von Ihnen bereitgestellten Codebeispiel ist actor ein Objekt, kein Typ. Vielleicht wird das funktionieren:

def createActorPool[T](implicit actor: Manifest[T], poolSize: Int): List[Supervise] = { 
    (1 to poolSize).foldRight(List[Supervise]()) { 
    (idx, list) => { Supervise(actorOf[T], Permanent) :: list } 
    } 
} 
Verwandte Themen