2011-09-27 28 views
7

aşağıdaki oluşturulan kod parçacığını sola.Tip çıkarsama

((_: Int) > 3) <| 7 
((_: Int) > 3) <|: 7 
7 |> (_ > 3) 

Ama bu değil:

ardından kod çalışır

(_ > 3) <| 7 
(_ > 3) <|: 7 

o sağdan sola tür parametreleri anlaması mümkün mü?

+2

'(_> 3) <|: 7' ve '7. \' <|:\'(_ > 3) 'arasında bir fark olması beni şaşırttı, ama aslında yalnızca ikinci derlemeler. Burada bir cevap alamıyorsanız, posta listesinden bilgi alabilir veya hata izleyicisini kontrol edebilir misiniz? –

+0

@Kipton, "7" parantezini bu gibi parantez içine yerleştirirseniz, arka keneleri çıkartabileceğinizi unutmayın: '(7). <|:(_ > 3) ', derleyici' <|: '' '' '' '' '' parantez olmadan '' '' '' çağırmaya çalıştığı için, '<|: 'in bir infix çağrısına neden olur ve bu da türe geri gider. çıkarım sorunu. – agilesteel

cevap

5

Bu iki konuyla ilgili olan: SI-4773 ve SI-1980. Bu sorunlara dayanarak, sorunuzun cevabı hayır gibi görünmektedir. Sorunuzla doğrudan ilgili olmasa da, making the most of type inference in Scala numaralı telefondan Paul Chiusano'nun Scala'daki mevcut durum çıkarsama durumunu ele alan ve bazı yararlı öneriler sunan çok güzel bir yayını var.