0

我有一个泛型类Book[T](index: Int, type: T)和一个foo类型的对象Book。我不确定如何访问索引和类型。我试过了:

1. foo match { case Book[T](index: Int, type:T) => {} }
2. foo match { case Book(index: Int, type:T) => {} }
3. foo match { case foo: Book[T] => { foo.index } }

全部失败并显示消息:

1. class Book does not take type parameters
2. class Book not found
3. index is not a member of Book

谢谢你。

4

1 回答 1

1

Welltype是 scala 已经使用的关键字。您可以尝试通过使用其他关键字而不是type使用case class模式匹配来实现相同的目的。

 case class Book[T](index: Int, bookType : T)

  val foo =  Book(1,Book)                         

  // foo  : stack.Book[stack.Book.type] = Book(1,Book)

  foo match {
    case Book(i,t) => "index : " + i + ", type : " + t // play around with i & t
  }                                     

 //> res0: String = index : 1, type : Book
于 2013-03-30T17:51:20.437 回答