[英]How could a “global implicit class” be defined in Scala?
考慮到隱式類“必須在另一個特征/類/對象內部定義” 1 ,如何在全局定義隱式轉換?
這種情況是我想在我的應用程序中為所有Strings
(或Lists
)添加一個方法,或者至少為它的幾個包添加一個方法。
無論是在Java中還是在Scala中,都無法向“全局”范圍添加任何內容。 但是,在Scala中,可以定義package objects
,它可以包含在整個包中使用的方法,並且可以由用戶輕松導入。
這看起來像這樣:在目錄foo/bar/baz
創建一個名為package.scala
的文件,其中包含以下內容:
package foo.bar
package object baz {
implicit def incrediblyUsefulConversion(s: String) = ...
}
然后,用戶可以在其代碼中執行以下操作以激活轉換:
import foo.bar.baz._
或者可能
import foo.bar.baz.incrediblyUsefulConversion
當然,您也可以在其他軟件包中使用自己的代碼,就像任何其他用戶一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.