Scala语言基础:中缀表示法

在Scala 编程规范中 , 有一些很有意思的规则 , 比如中缀表示法 。 合理地使用这些规则 , 可以帮助我们编写更简洁更有效的代码 。
一、Scala 方法调用一般来说 , Scala中的方法调用遵循Java惯例 。 换句话说在目标方法和点符(.)之间是没有任何间隙的 , 并且最好遵循参数之间用逗号隔开 , 后面的参数与前面参数后面的逗号应该存在一个空格 。
下面是List对象中foreach方法的调用 , 方法中传入一个Lambda表达式 , 输出List对象中每一个元素 。
Scala语言基础:中缀表示法文章插图
二、中缀表示法 Infix notationScala 有一种特殊的方法调用只有一个参数的方法 。
中缀表示法适用于调用只含一个参数的方法 。
语法: 调用方 方法名 方法参数
对前面调用的foreach方法 , 采用中缀表示法书写:
list foreach (x=>println(x))
Scala语言基础:中缀表示法文章插图
【Scala语言基础:中缀表示法】由于println函数本身就只接受一个参数 , 因此还可以进一步简写:
list foreach println
Scala语言基础:中缀表示法文章插图
中缀表示法也是Scala中推荐的具有函数式方法的写法 。
下面再看一个对映射Map遍历的示例 。
scala> val books=Map(1->"Scala", 2->"Spark", 3->"Flink", 4->"Elasticsearch")
scala> books foreach (kv=>println(kv._1+":"+kv._2))
Scala语言基础:中缀表示法文章插图
过滤books映射对象:
scala> books filter {kv=>kv._2 contains "S"}
res6: scala.collection.immutable.Map[Int,String] = Map(1 -> Scala, 2 -> Spark)
再试试占位符“_”的应用:
scala> books filter {_._2 contains "S"}
Scala语言基础:中缀表示法文章插图