在官方API頁面上,我搜索了「時間」,但找不到課程。我查看了RichLong和RichInt上的所有方法,但找不到方法。如何在Scala中查找包含時間轉換的包?
我專門談論INT之間的轉換/長到某種富有對象的方法:
2 hours + 12 seconds
注意我不要求的包是什麼,我想知道如何找到它。
在官方API頁面上,我搜索了「時間」,但找不到課程。我查看了RichLong和RichInt上的所有方法,但找不到方法。如何在Scala中查找包含時間轉換的包?
我專門談論INT之間的轉換/長到某種富有對象的方法:
2 hours + 12 seconds
注意我不要求的包是什麼,我想知道如何找到它。
那些不在標準的Scala API中。您是否使用JodaTime的縮放時間包裝器?如果是這樣,那會告訴你在哪裏看。一般來說,如果您知道哪個導入可以啓用該功能,那麼在嘗試查找文檔時會有很大幫助!
如果您知道方法名稱,您可以單擊左側面板頂部的小字母,位於ScalaDoc搜索文本字段下方 - 這將列出文檔中帶有該名稱的所有內容,包括方法(並告訴你如何找到它)。
如果一個類沒有一種方法本身,你可以使用Scala的告訴你什麼類,它變得轉換爲:
def whoHasSize[A](a: A)(implicit ev: A => { def size: Int }) = ev(a).getClass.getName
scala> whoHasSize("fish")
res1: java.lang.String = scala.collection.immutable.StringOps
所以在這裏你看到字符串"fish"
本身不具有size
方法;相反,這已被scala.collection.immutable.StringOps
方法授予。你可以做同樣的事情來找出seconds
。
最後,燉的答案可能是你真正想要的!
我知道該方法的名稱是什麼 - 它是幾秒或幾小時或幾分鐘。我不知道如何通過方法搜索官方文檔。我真的認爲它是在官方的Scala API中。 –
@FrançoisBeausoleil - 我已經添加了關於如何搜索並告訴你有什麼的信息。 –
您可以使用-Xlog-implicits
標誌讓編譯器向您顯示它在哪裏找到隱式轉換。
我認爲* IDEA和eclipse插件都有這樣的氣球提示:[IntelliJ](http://devnet.jetbrains.net/thread/289036); [scala-IDE Helium](http://scala-ide.org/download/nightly.html) –
'scala.Long'的API顯示爲'def +(x:Int):Long'。我不確定這是否回答你的問題。 – Bradford