scala中常用但其他语言不常见的符号含义

本文旨在介绍Scala在其他语言中不太常见的符号含义,帮助理解Scala Code。

下面介绍Scala中的符号:

1. :::三个冒号运算符

表示list的连接操作

val one = List(1,2,3)val two = List(4,5,6)val three = one:::two

输出结果为:

three: List[Int] = List(1, 2, 3, 4, 5, 6)

2. :: 两个冒号运算符

表示普通元素与list的连接操作

    val list = 5 :: List(1,2,3,4)
//    val list = List(1,2,3,4).::(5)
    list.foreach(println)

3. _N下划线数字运算符

用于访问元组的第N个元素,N的取值从1开始。元组的元素访问方法与数组不同是因为元组的元素类型可以不同。

在元组中,可以用方法_1, _2, _3访问组员。如a._2。其中句点可以用空格替代。

4. -> 返回一个二元元组

    val list = 5 :: List(1,2,3,4)
    println(list->1)
//    (List(5, 1, 2, 3, 4),1)
    println(2->1)
//    (2,1)

5. <-  用于遍历集合对象 

 val list = 5 :: List(1,2,3,4)


    for( v <- list){
      println(v)
    }

6. =>  把左边的东西改成右边的东西;可以看做创建函数实例的语法糖,这个运算符常见的有下面三种:

  • =>:Example:Int => String表示函数输入为Int型,返回String型,同Function(Int,String)

  • ()=>:Example:() => T表示函数没有输入参数,但返回T

  • Unit=>:Unit相当于无值的值,相当于java中的Void

7.  _   有很多含义

a.通配符  

import org.apache.spark.SparkContext._
b.匿名函数

指代集合中的每一个元素。例如筛选列表中大于某个值的元素

val lst = List(1,2,3,4,5)val lstFilter = lst.filter(_ > 3)

c. 使用模式匹配可以用来获取元组的组员。

val m = Map(1 -> 2,2 -> 4)for ((k,_) <- m)println(k)
如果不需要所有部件,则在不需要的部件使用_;
本例只取key,因此在value处用_

d. 代表某一类型的默认值

  • 对于Int类型来说,它是0

  • 对于Double来说,它是0.0

  • 对于引用类型来说,它是null

e. :_* 作为一个整体,告诉编译器你希望将某个参数当作数序列处理。

val s = sum(1 to 5:_*)    //把1 to 5当作一个序列处理

f. +=:为map类型变量添加元素

g. -=:为map类型变量移除元素及其对应的值

参考文献

 1 http://stackoverflow.com/questions/6951895/what-does-and-mean-in-scala

   2 http://docs.scala-lang.org/tutorials/FAQ/finding-symbols.html

   3 https://www.zhihu.com/question/21622725/answer/21588672

   摘自 :https://www.cnblogs.com/xinlingyoulan/p/6031157.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值