//使用#::得到一个stream:numsForm(参数:参数类型) : 返回值类型 = 参数 #:: numsForm(m+1) ==>> 两个参数必须一致 def numsForm(n: BigInt) : Stream[BigInt] = n #:: numsForm(n + 1) //传递一个值,并打印stream集合 val one = numsForm(0) println(one) //println(one.tail.tail) //tail的每一次使用,都会动态的向stream集合按照规则生成新的元素 在one里加了一个新的元素 //tail方法是取集合里除了第一个元素以外的所有元素 //在Stream里 tail既有添加新元素的特性,又有获取元素的特性 // 添加新元素是在原有的Stream上,获取元素是创建了一个新的Stream val s5 = one.tail println(one) //Stream(0, 1, ?) println(s5) //Stream(1, ?) val s6 = s5.tail println(s5) //Stream(1, 2, ?) println(s6) //Stream(2, ?)