阶扩展堆栈不起作用
问题描述:
这工作阶扩展堆栈不起作用
class Deck {
var cards : Stack[Card] = new Stack[Card]
for (card <- Card.possibleCards.keySet; suit <- Card.suits) {
cards.push(new Card(card, suit))
}
}
但这并不
class Deck[Card] extends Stack[Card] {
for (card <- Card.possibleCards.keySet; suit <- Card.suits) {
push(new Card(card, suit))
}
}
我得到这个错误:
error: class type required but Card found
有人能告诉我为什么吗?
答
这只是一个语法错误,我需要从Deck中删除类声明卡。 像这样
class Deck extends Stack[Card] {
for (card <- Card.possibleCards.keySet; suit <- Card.suits) {
push(new Card(card, suit))
}
}
适合我。你对“Stack”的定义是什么?然而,这不是你的意思 - 在yuor代码中的卡片只是一个类型参数(例如,它可以被称为任何东西 - 例如T)。它会隐藏你的代码中定义的任何其他卡。我认为你的意思是'class Deck extends Stack [Card]' –
import scala.collection.mutable.Stack – TheJKFever
仍然适用于我。但看到我的其他评论,这几乎肯定不是你的意思。此外,卡的定义是需要一个完整的可重复的例子 –