小编Wal*_*ang的帖子

scala 2.10.x中的隐式解析.这是怎么回事?

我使用scala 2.10.0-snapshot日期(20120522)并具有以下Scala文件:

这个定义了类型类和基本的类型类实例:

package com.netgents.typeclass.hole

case class Rabbit

trait Hole[A] {
  def findHole(x: A): String
}

object Hole {
  def apply[A: Hole] = implicitly[Hole[A]]
  implicit val rabbitHoleInHole = new Hole[Rabbit] {
    def findHole(x: Rabbit) = "Rabbit found the hole in Hole companion object"
  }
}
Run Code Online (Sandbox Code Playgroud)

这是包对象:

package com.netgents.typeclass

package object hole {

  def findHole[A: Hole](x: A) = Hole[A].findHole(x)

  implicit val rabbitHoleInHolePackage = new Hole[Rabbit] {
    def findHole(x: Rabbit) = "Rabbit found the hole in Hole package object"
  }
}
Run Code Online (Sandbox Code Playgroud)

这是测试: …

scala

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

反XML组"收集"不收集

我是从scala-user交叉发布的:

我有以下内容:

object XmlTest {

  import com.codecommit.antixml._

  implicit def toPicker(nodes: Group[Node]): Picker = new Picker(nodes)

  class Picker(nodes: Group[Node]) {
    def pick[A <: Node : ClassManifest]: Group[A] = nodes collect {
      case a if implicitly[ClassManifest[A]].erasure.isInstance(a) => a.asInstanceOf[A]
    }
  }

  def testCollect(elems: Group[Elem]) {
    println("size before collect = " + elems.size)
    val es = elems collect {
      case e if e.name == "c" => println("element name is " + e.name); e
    }
    println("size after collect = " + es.size)
  }

  def main(args: …
Run Code Online (Sandbox Code Playgroud)

scala anti-xml

3
推荐指数
1
解决办法
588
查看次数

标签 统计

scala ×2

anti-xml ×1