2013-05-01 18 views

cevap

14

ben aynı ulaşmak için eşleşen deseni kullanmak istiyorsunuz scala içinde tahmin , Örneğin Böyle: eşdeğer

val f: (Int, Int) => Int = { case (p1, p2) => p1 } 

Veya:

def f(p: (Int, Int)) = p match { case(p1, p2) => p1 } 

tip varılabilir ise (Int, Int) => Int düşmüş olabilir: Scala'nın sayısında aynı için

List((1, 2), (3, 4)) map { case (p1, p2) => p1 } 
+2

Desen eşleştirmeyi çok ayrıntılı bir çözüm olarak kullanmaktan kaçınmayı tercih ederim. Başka bir deyim varsa, bunu kabul edebilirim. Biri var mı –

+1

Bildiğim kadarıyla ... – ValarDohaeris

+2

@JacekLaskowski - Bu, alacağınız en iyisi. Tuples ve yöntem parametreleri tam olarak birleştirilmemiş ve fark ettiğiniz yerlerden biri. Bununla birlikte, f (p1: Int, p2: Int) = p1 + p2 've daha sonra '(f _). Tuple' işlevini kullanarak' def' parametresinin ayrı parametreler almasına rağmen bir tuple çekebilirsiniz. –

0
def f(p: ((Int, Int), (Int, Int))) = p._1  > f: (p: ((Int, Int), (Int, Int)))(Int, Int) 
f((1,2), (3,4))        > res1: (Int, Int) = (1,2) 
İlgili konular