Indítsunk egy módszer egy tuple a paraméter lista

szavazat
9

Kíváncsi vagyok, mi a legjobb módja ennek.

val foo = Some(a)
val bar = Some(2)

def baz(a: String, b: Int) = if((b % 2) == 0) Some(a+,+b) else None

(x zip y) flatMap baz //does not compile of course
(x zip y) flatMap { x => baz(x._1, x._2) } //ugly

Azt feltételezik, hogy Odersky et al. Van egy másik trükk fel az övéket hüvely csökkenti a zaj ebben a példában.

Tehát a kérdés az, hogyan kell harcolni a rendetlenséget itt feltételezve, hogy nem szabad megváltoztatni a végrehajtását baz(pl def baz(a: (String Int))).

A kérdést 12/06/2011 13:20
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
17

Ezt a kérdést már megválaszolták itt: Scala tuple kicsomagolás

Először is, hogy ize, hogy egy függvény részleges alkalmazás, akkor hívja tupledaz Ön paraméter lista:

(foo _).tupled(myTuple)
Válaszolt 12/06/2011 14:20
a forrás felhasználó

szavazat
1

A leggyakoribb módja, hogy tisztán csomagolja bármi mintázatú vagy-comprehensions:

for ((a,b) <- (x zip y); c <- baz(a,b)) yield(c)
Válaszolt 12/06/2011 14:43
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more