scala

2016-03-25 28 views
7

içinde örtük işlev veya değişkenleri nasıl bulabilirim Scala kodunda kullanılan örtülü dönüşümleri veya örtülü bağımsız değişken değerlerini bulamıyorum. Bu açık kaynak kodlu projeleri çok kafa karıştırıcı yapar.scala

implicitly hile yalnızca geçerli türde bir örtük değişken olup olmadığını denetlemeye yardımcı olabilir, ancak örtük değişkenin tanımlandığı yeri bulamadı.

scala> implicitly[(Int) => RichInt] 
res2: Int => scala.runtime.RichInt = <function1> 

örtük dönüşüm ve değerlerin tanımlarını bulmak için kolay bir yol var mı

kod parçası tarafından kullanılıyor? Kaynak kod dosyası çok uzunsa, çok büyük bir iş olacaktır. SO üzerinde kaplı olan

cevap

9

Bir numara:

scala> import reflect.runtime._,universe._ 
import reflect.runtime._ 
import universe._ 

scala> reify { "abc".size } 
res1: reflect.runtime.universe.Expr[Int] = Expr[Int](Predef.augmentString("abc").size) 

Son REPL:

scala> 3 until 4 //print<hit tab completion> 
    scala.Predef.intWrapper(3).until(4) // : scala.collection.immutable.Range