的名單上:Lazify這個flatMap鑑於這種功能,我不能修改迭代器
def numbers(c: Char): Iterator[Int] =
if(Character.isDigit(c)) Iterator(Integer.parseInt(c.toString))
else Iterator.empty
// numbers: (c: Char)Iterator[Int]
而這種輸入數據:
val data = List('a','b','c','1','d','&','*','x','9')
// data: List[Char] = List(a, b, c, 1, d, &, *, x, 9)
我怎樣才能讓這個功能慵懶,這樣的那data
只處理到第一個出現的數字字符?
def firstNumber(data: List[Char]) :Int = data.flatMap(numbers).take(1)
這看起來不錯,但我需要獲得'Int',而不是一個'列表[INT]' – noahlz