小编azu*_*ras的帖子

使用无形scala合并两个不同案例类的字段

我想将两个不同案例类的字段合并为一个案例类.

例如,如果我有以下案例类:

case class Test(name:String, questions:List[Question], date:DateTime)

case class Answer(answers:List[Answers])
Run Code Online (Sandbox Code Playgroud)

我想要一个简洁的无形方式将两者合并为:

TestWithAnswers(name:String, questions:List[Question], date:DateTime, answers:List[Answer]). 
Run Code Online (Sandbox Code Playgroud)

那里有一个很好的无形答案吗?

scala shapeless

7
推荐指数
1
解决办法
1483
查看次数

拉出具有依赖关系的无形多态函数

对于无形的新手,我对使用需要一些依赖性的多态函数有疑问.我基本上有这个代码,并希望从run方法中拉出somePoly对象:

import shapeless._
object SomeObject {
    type SomeType = Int :+: String :+: (String, Int) :+: CNil

    def run( someList: List[SomeType], someInt:Int, someWord:String ) = {

       object somePoly extends Poly1 {
           implicit def doIt = at[Int]( i => i + someInt + someWord.length)
           implicit def doIt2 = at[String]( i => i.length + someWord.length)
           implicit def doIt3 = at[(String, Int)]( i => i._1.length + someWord.length)
       }

       someList.map( _.map(somePoly) )
    }
}
Run Code Online (Sandbox Code Playgroud)

我想这样做的一种方式就是这样,但它似乎很乱:

object TypeContainer {
  type SomeType = Int :+: String …
Run Code Online (Sandbox Code Playgroud)

scala shapeless

6
推荐指数
1
解决办法
257
查看次数

标签 统计

scala ×2

shapeless ×2