self-type

    0熱度

    1回答

    我有一個特點,代表了一些模塊,暴露出一些公共方法(覺得服務): trait X { def exposeMe: AService = ... def keepMeHidden: BService = ... } 然後,我有一個Y模塊,需要服務從X 。 Y的客戶還需要X提供一項服務。但我不希望他們只依賴這一項服務,而要依靠整個X。我想要「出口」一種服務是公開的。 trait

    3熱度

    1回答

    在scala中是否有任何方法來將特徵的自我類型定義爲個案類,如同「任何情況下的類」一樣?我想要一個自我類型能夠使用案例類的.copy方法,強制其自我類型是某些案例類不是常規類。我認爲,結構類型將無濟於事,因爲它們需要包含特定參數的簽名(對於任何案例類別,我都可能不是結構類型)。 請放棄「如果你需要你必須做錯事」,因爲我已經開始了,但我的api設計 - 如果上述可能會變得更加輕鬆。我對下一次也很好奇

    0熱度

    1回答

    我想要求一個case class來實現某些特性中的至少一個。 我想,我可以使用自助式註釋是這樣的: case class DisqualifiedDate(override val paths: Set[DatePath], override val cal: Calendar) extends CalendricDate(paths,cal){ this: DateErro

    1熱度

    1回答

    爲什麼我不能在類的主體中定義構造函數arg myval?例如特質是無法看到的構造ARG如下所示: scala> class A(myval: String){} scala> trait B { | this: A => | println(myval) | } <console>:8: error: not found: type A this:

    7熱度

    2回答

    我有一些在其伴侶對象中定義了方法tupled的案例類。從下面的伴隨對象代碼可以看出,它只是代碼複製。 case class Book(id: Int, isbn: String, name: String) object Book { def tupled = (Book.apply _).tupled // Duplication } case class Author(i

    1熱度

    1回答

    我想在自我類型特徵中獲得對Scala中自我類型註釋的具體類型的引用。我有這樣的事情: trait Foo class FooImpl1 extends Foo class FooImpl2 extends Foo trait SpecialFoo { this:Foo => def |+|(that:this.type):this.type // the type s

    4熱度

    2回答

    斯卡拉自我型這並不編譯: trait FileSystem { type P <: Path[this.type] } trait Path[S <: FileSystem] { self: fileSystem.P => val fileSystem: S } 自-type約束如何依賴在性狀的數值成員嗎?

    0熱度

    1回答

    我有一個控制器: class HomeController @Inject() (cc: ControllerComponents) extends AbstractController(cc)with Logging { this: SecuredActionByToken => def index = CheckedToken{ ... 凡SecuredAction

    1熱度

    2回答

    認可我想一個類來迫使它的子類實現子性狀的性狀,並試圖此: sealed trait TA sealed trait TB extends TA sealed trait TC extends TA sealed trait CA { this: TA => } final class CB extends CA with TB final class CC extends

    2熱度

    1回答

    我有一個隱式類需要用戶數據庫。我想在隱式類中使用自我類型,因此我可以將測試範圍內的數據庫實現切換到模擬版本。在這種情況下,我如何混合數據庫提供者?例如,我希望RuchUser的用戶不用擔心必須通過提供默認混音來混合UserDatabaseProvider。因此,用戶可以只做User("name").userContext,並在測試範圍內執行相同的操作,我將提供默認混合使用模擬數據庫提供程序? ca