0
def partval(partID: Int, iter: Iterator[T >: Nothing]): Iterator[T >: Nothing] = {
iter.map(x => (partID, x)).toList.iterator }
不起作用。在這個代碼中,Iterator中的確切類型應該不重要,我認爲所有東西都應該是超類型Nothing
。我認爲Scala編譯器可以推斷類型,所以我預想的還要
def partval(partID: Int, iter: Iterator): Iterator = {
iter.map(x => (partID, x)).toList.iterator }
或
def partval(partID, iter) = {
iter.map(x => (partID, x)).toList.iterator }
工作,但事實並非如此。我如何得到這個運行?
編輯:
簽名def partval(partID: Int, iter: Iterator[T]): Iterator[(Int, T)]
結果
Name: Compile Error
Message: <console>:19: error: not found: type T
def partval2(partID: Int, iter: Iterator[T]): Iterator[(Int, T)] = {
^
<console>:19: error: not found: type T
def partval2(partID: Int, iter: Iterator[T]): Iterator[(Int, T)] = {
如果我有你你需要'def partval(partID:Int,iter:Iterator [T]):Iterator [(Int,T)]'。另外,爲什麼你需要'.toList.iterator'? –
@VitaliyKotlyarenko:你最後一個問題是什麼意思?爲什麼我需要一個迭代器?這只是所需的輸出。爲什麼要toList?我不確定,但沒有它,它不起作用。 – Make42
@VitaliyKotlyarenko:您的簽名會導致錯誤(請參閱問題)。 – Make42