【问题标题】:Context bound for nested type嵌套类型的上下文绑定
【发布时间】:2015-05-22 18:19:32
【问题描述】:

是否可以以某种方式为嵌套类型创建上下文绑定?像这样的:

def f[T : U[List]](a: T)

Ofc,这不是 Scala 语法,但说明了我想要实现的目标,即在隐式 U[List[T]] 上获得一个界限。这可能吗?

谢谢。

【问题讨论】:

    标签: scala polymorphism implicits


    【解决方案1】:

    您可以使用类型别名来做到这一点:

    type UList[X] = U[List[X]]
    def f[T : UList](a: T)
    

    def f[T:({type UL[X] = U[List[X]]})#UL](a: T)
    

    【讨论】:

    • 嗯,我期待的是没有别名的东西,但不是第二种解决方案的可憎性:) 我会等一下,如果没有更好的,我会接受你的回答。谢谢!
    • @kaktusito 我对当前用于在 scala 中进行类型滚动的合成器也非常不满意。
    • 好像有一些关于这个话题的老问题(就像这个stackoverflow.com/questions/6247817/…),但后来就不再关注了。
    • 如果你不喜欢类型柯里化的语法(谁喜欢?)这里有一种投影机编译器插件,它允许更自然。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    相关资源
    最近更新 更多