Evet, Pythonistas olmayanlar tarafından tembel kabul edildiğini biliyorum. Sormamın nedeni, birçok Scala kütüphanesinde (örn. Scala-dbc gibi) belgelerin hala eksik olmasından kaynaklanıyor ve eğer bir nesnenin/sınıfın çalışma zamanındaki özelliklerini görebiliyor olsaydım; En uygun olanı bulmak. Teşekkürler.Scala'nın Python'un dir()?
cevap
Scala yansıma API'sine sahip değildir. Bu bilgiye erişmenin tek yolu Java reflection API'u kullanmaktır. Bu, Scala'nın Java sınıflarında temsil edildiği ve arayüzlerin gelecekte değişebileceği için yapının değişebileceği dezavantajına sahiptir. bayt kodu mevcut
scala> classOf[AnyRef].getMethods
res0: Array[java.lang.reflect.Method] = Array(public final void ...
bazı özel bir tür bilgi ScalaSigParser ile ulaşılabilir. Repl için benim ana kullanımlarından biri
import tools.scalap.scalax.rules.scalasig._
import scala.runtime._
val scalaSig = ScalaSigParser.parse(classOf[RichDouble])
. Nesnenin adını, noktasını ve ardından SEKME yazın ve mevcut tüm yöntemleri gösterecektir.
Mükemmel değil. Bir şey için, sınıfı genişletmediğiniz sürece mevcut olmayacak korunan yöntemleri gösterir. Başka bir şey için, örtük dönüştürme yoluyla kullanılabilir yöntemleri göstermez.
Ve elbette, IDE'lerin hepsi bunu yapabilir.
İhtiyacınız olanı veren aşağıdaki gibi bir şey isteyebilirsiniz. Bu durumda, açıkça bir String üzerinde çalışır.
val testStr = "Panda"
testStr.getClass.getMethods.foreach(println)
Bu işe yarıyor mu?
Sen benim ilk çözüm, ama Intellij IDEA 9 (Scala 2.7.7 kullanarak) I scala yeterli bilgi alamadım, REPL
- 1. -I dir vs -isystem dir
- 2. Erlang belirli bir dir için ana dir ismi nasıl alınır?
- 3. Python "dir" eşdeğeri Clojure
- 4. Read sistemi TMP dir
- 5. grails-app/utils dir
- 6. Bu kurucu gerçekten "kötü" dir?
- 7. Cabal: kaynak ile inşa dir
- 8. docker run -v <dir> vs Dockerfile's VOLUME <dir>
- 9. Dış Önbelleğindeki dosya için FileProvider nasıl ayarlanacağı dir Önbellek dir dosyası için
- 10. İşte benim ana dosyası (server.go) 'dir modülünü
- 11. Mailx ve Gmail nss config dir
- 12. Python'da yazdırma işlevi neden dir() dizinine aktarılamıyor?
- 13. ant fileset dir belirli dizini hariç tut
- 14. Pip '--no-cache-dir' ne için iyidir?
- 15. JavaScript'in ayrıştırma sınırı neden varsayılan 8'dir?
- 16. sphinx import parent dir ilk dosya?
- 17. Komut ls veya dir in ghci
- 18. for-Loop her zaman aynı dir
- 19. C# VB.NET eşdeğer anahtar kelime "dir" nedir?
- 20. İnsanlar neden yorumlandığı için pythonun yavaş olduğunu söylüyorlar? .pyc dosyaları var
- 21. Bir senaryonun ortasında pythonun etkileşimli hale gelmesinin bir yolu var mı?
- 22. Sadece Linux'ta QuestionMarks i bana garip bir sonuç verir benim .ssh ev dir in dir listesini yapıyorum
- 23. usb depolama birimine Dosya yazamadı i dir oluşturmak için kod aşağıdaki yazdım bağlı usb depolama dosya dir oluşturmaya çalışıyorum
- 24. CS0118: 'MT.Flag.UmbracoTests' bir 'ad alanı' dir ama bir 'tip'
- 25. onaylı dir kavanozlarını JVM'ye yüklemek için hangi sınıf yükleyiciden sorumludur?
- 26. Composer hatası nasıl düzeltilir: "dir içindeki sınıflar için tarama yapılamadı"?
- 27. php modu ayarlarını .emacs'den .dir-locals.el'ye nasıl taşıyabilirim?
- 28. Yeni csproj biçimi kullanılarak nupkg içinde "analyzer" dir dosyalarının yerleştirilmesi
- 29. Dize anahtarı x ile erişim dizisi, burada x "123" dir
- 30. Dir sınıfı kullanılarak boş olmayan bir dizin nasıl silinir?
Evet artırma this küçük bir yardımcı kullanmak isteyebilirsiniz. dbc sınıfı, özellikle, bir sorgu oluştururken (bunun için gerçekten iç gözlemden çok belgelere ihtiyacım var, ancak bu son çare oldu). – JohnMetta