前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >scala中常用但其他语言不常见的符号含义 - 心灵空谷幽兰 - 博客园

scala中常用但其他语言不常见的符号含义 - 心灵空谷幽兰 - 博客园

作者头像
Spark学习技巧
发布2018-01-31 12:56:14
4610
发布2018-01-31 12:56:14
举报
文章被收录于专栏:Spark学习技巧Spark学习技巧

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

随着我对Scala学习的深入,我会不断增加该篇博文的内容。

修改记录

----2016.11.23 新增scala中最神秘强大的下划线(_)用处

下面介绍Scala中的符号:

  • :::三个冒号运算符:表示list的连接操作
代码语言:javascript
复制
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)

  • :: 两个冒号运算符:表示普通元素与list的连接操作
  • _N下划线数字运算符:用于访问元组的第N个元素,N的取值从1开始。元组的元素访问方法与数组不同是因为元组的元素类型可以不同。
  • -> 返回一个二元元组

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

  • <- 用于遍历集合对象
  • => 把左边的东西改成右边的东西;可以看做创建函数实例的语法糖,这个运算符常见的有下面三种:
    • =>:Example:Int => String表示函数输入为Int型,返回String型,同Function(Int,String)
    • ()=>:Example:() => T表示函数没有输入参数,但返回T
    • Unit=>:Unit相当于无值的值,相当于C++中的Void
  • _ 有很多含义

      1、通配符

代码语言:javascript
复制
import org.apache.spark.SparkContext._

      2、匿名函数

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

代码语言:javascript
复制
val lst = List(1,2,3,4,5)val lstFilter = lst.filter(_ > 3)

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

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

   5、代表某一类型的默认值

对于Int类型来说,它是0

对于Double来说,它是0.0

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

  • :_* 作为一个整体,告诉编译器你希望将某个参数当作数序列处理。
代码语言:javascript
复制
val s = sum(1 to 5:_*)      //把1 to 5当作一个序列处理
  • +=:为map类型变量添加元素
  • -=:为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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浪尖聊大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档