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

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

修改记录

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

下面介绍Scala中的符号:

  • :::三个冒号运算符:表示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)

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

  返回:(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、通配符

import org.apache.spark.SparkContext._

        2、匿名函数

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

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

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

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

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

对于Int类型来说,它是0

对于Double来说,它是0.0

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

  • :_* 作为一个整体,告诉编译器你希望将某个参数当作数序列处理。
val s = sum(1 to 5:_*)      //把1 to 5当作一个序列处理
  • +=:为map类型变量添加元素
  • -=:为map类型变量移除元素及其对应的值

参考文献

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

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

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

最新文章

  1. js ES6 多行字符串 连接字符串
  2. iOS开发之功能模块--推送之坑问题解决
  3. 【转】silverlight telerik RadGridView 列头显示其他控件
  4. (windows)mongoDB3X+Robomongo的安装与基础配置
  5. javascript 设计模式-----外观模式
  6. java.io包详细解说
  7. Android 虚线分割Shape
  8. NHibernate多对多关联映射的实现
  9. hdu 2391 Filthy Rich
  10. bzoj 4237: 稻草人
  11. Python连接SQL Server数据库 - pymssql使用基础
  12. hadoop 安装之 hadoop、hive环境配置
  13. 福大软工 &#183; 第十二次作业 - Beta答辩总结
  14. mybatis进行一对多时发现的问题总结
  15. 关于Podfile,某个第三方指定源
  16. 尚未备份数据库 &quot;***&quot; 的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。
  17. 设置cxGrid中RichEdit输入内容的格式
  18. (C/C++学习笔记) 十八. 继承和多态
  19. C# 获取方法内参数名称
  20. HOW TO:使用 Visual C# .NET 打印 RichTextBox 控件的内容

热门文章

  1. css编译工具Sass中混合宏,继承,占位符分别在什么时候使用
  2. jQuery常用技巧大放送
  3. 常见的mongodb可视化工具
  4. Sphinx 排序模式 SetSortMode
  5. jQuery简单的轮播特效
  6. iscc2016-basic-find-to-me
  7. [BZOJ 1816] [Cqoi2010] 扑克牌 【二分答案】
  8. Delphi文件映射
  9. WM_SIZE和WM_MOVE的函数体内容为什么不一样?
  10. Arrays常用API的事例