💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
stream是一个集合.这个集合,可以用于存放,无穷多的元素,但是这个无穷个元素并不会一次性生产出来,而是需要用到多大区间,就会动态的生成,末尾元素遵循lazy规则 1. 使用`#::`得到一个stream ~~~ def numsForm(n: BigInt): Stream[BigInt] = n #:: numsForm(n+1) ~~~ 2. 传递一个值,并打印stream集合 ~~~ val tenOrMore = numsForm(10) println(tenOrMore) ~~~ 输出 ~~~ Stream(10, ?) ~~~ ?表示待生成 3. tail的每一次使用,都会动态的向stream集合按照规则生成新的元素 tail表示除了第一个元素的其他元素 ~~~ println(tenOrMore.tail) println(tenOrMore) ~~~ 输出 ~~~ Stream(11, ?) Stream(10, 11, ?) ~~~ 4. stream会不断生成,后面的会影响前面 ~~~ def numsForm(initNum: BigInt): Stream[BigInt] = { initNum #:: numsForm(initNum + 1) } val numStream = numsForm(0) val s1 = numStream.tail val s2 = s1.tail println(s1) println(s2) ~~~ 输出 ~~~ Stream(1, 2, ?) Stream(2, ?) ~~~