One of the recent commits örtük parametrelerle bağlam/görünüm sınırlarının birleştirilmesiyle ilgili kısıtlamayı kaldırır. Bu, kazanın miktarını azaltan büyük bir iyileştirmedir, ancak bu kısıtlamayı daha önce yapmanın sebebi neydi ve şimdi ne gibi sonuçlar bekleyebiliriz?Gizli parametreleri ve görünüm/bağlam sınırlarını birleştirmeyi kısıtlamanın nedeni neydi? Scala ana makinesine
8
A
cevap
5
Bağlam ve görünüm sınırları, örtülü parametreler ekler. Yani eğer yazdığınız:
, aslında, iki örtük parametreler bir yerine geçirilen vardırdef f[T : Manifest](l: List[T])(implicit ord: Ordering[T])
. Bu tür bir sözdizimine izin vermek kesinlikle yolun bazı karışıklıklarına neden olacaktır. Örtük parametre kullanımı daha yaygın olmaya başladığından, tip sınıfları nedeniyle, yukarıdaki gibi bir şey yapabilmek yararlıdır.
"Bağlam ve görünüm sınırlarını örtük parametreler ekleyin" >> eminim, biliyorum. Herhangi bir teknik zorluktan kaynaklanıyorsa oldukça ilgimi çekiyordum. –
IMO, örtük parametrelerle birlikte sınırları kullanamamak da yeni başlayanlar için çok kafa karıştırıcı olabilir :) –
@Vasil Kötü bir karar olduğunu söylemiyorum, sadece belli bir dereceye kadar ... . Tüm parametre listelerinin doğru şekilde doldurulması için _seems_ olsa bile, yukarıdaki f (Liste (1 -> 2, 2 -> 1)) (Sıralama (_.swap)) 'gibi bir işlevi çağırmak yasa dışı olur. –