scala中的()和{}的区别总结

scala中的()和{}

大括号{}用于代码块,计算结果是代码最后一行;
大括号{}用于拥有代码块的函数;
大括号{}在只有一行代码时可以省略,除了case语句(Scala适用);
小括号()在函数没有参数时可以省略(Scala适用);
几乎没有二者都省略的情况

单个参数尽量用{},只有一行代码情况下可以用().
两个及以上参数必须用()

println(listRDD.mapPartitionsWithIndex( //两个参数,必须()
  (index, datas) => {
    datas.map {
      data => { //因为函数只有一行代码,所以此{}可以省略
          (index, data)
        }
        }
  }
).collect().mkString("  "))

println(listRDD.mapPartitionsWithIndex(
  (index, datas) => {
    datas.map {
      data => (index, data)  //因为data只出现一次,所以可以替换成_
    }
  }
).collect().mkString("  "))

println(listRDD.mapPartitionsWithIndex(
  (index, datas) => {
    datas.map {(index,_)} //因为只有一行代码,所以可以用()
  }
).collect().mkString("  "))

println(listRDD.mapPartitionsWithIndex(
  (index, datas) => {//只有一行代码,可以用() 
    datas.map((index,_))
  }
).collect().mkString("  "))

println(listRDD.mapPartitionsWithIndex(
  (index, datas) => (
    datas.map((index,_))
    )  //**单行用()可以运行,但是不推荐**
).collect().mkString("  "))

//case偏函数
val result: RDD[(String, Int)] = rdd1.map
{
//case的偏函数必须用{},哪怕是只一行代码也不能用(), 而且{}不能省略
case (k, v) => { (k, v.size) } //只一行代码,{}可以省略
//case (k, v) => (k, v.size) 也可以
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值