可能重复:
在Scala文档中搜索#::
我正在浏览Stream的文档
filter方法有以下代码:
def naturalsFrom(i: Int): Stream[Int] = i #:: naturalsFrom(i + 1)
naturalsFrom(1) 10 } filter { _ % 5 == 0 } take 10 mkString(", ")
Run Code Online (Sandbox Code Playgroud)
什么是#::运算符?这是否映射到某个函数调用?
小智 10
x #:: xs
Run Code Online (Sandbox Code Playgroud)
回报
Stream.cons(x, xs)
Run Code Online (Sandbox Code Playgroud)
返回元素x的Stream,后跟Stream xs.
正如SHildebrandt所说,#::是Streams的合规运营商.
换句话说,#::是要将:: is to to Lists
val x = Stream(1,2,3,4) //> x : scala.collection.immutable.Stream[Int] = Stream(1, ?)
10#::x //> res0: scala.collection.immutable.Stream[Int] = Stream(10, ?)
val y = List(1,2,3,4) //> y : List[Int] = List(1, 2, 3, 4)
10::y //> res1: List[Int] = List(10, 1, 2, 3, 4)
Run Code Online (Sandbox Code Playgroud)