scala中常用但其他语言不常见的符号含义
本文旨在介绍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
2 http://docs.scala-lang.org/tutorials/FAQ/finding-symbols.html
3 https://www.zhihu.com/question/21622725/answer/21588672
scala中常用但其他语言不常见的符号含义的更多相关文章
- scala中常用特殊符号
参考资料: scala中常用但其他语言不常见的符号含义 Scala学习六:Scala中的特殊字符 =>(匿名函数) 参考文档:scala => 用法 匿名函数 => 匿名函数,在Sp ...
- 从jvm来看,scala中的@究竟是个什么鬼?@模式匹配符号(scala 词法分析 语法分析常用)
从jvm来看,scala中的@究竟是个什么鬼? 我也是初步尝试来看jvm的类文件,又是初次来分析@,如不对的地方,请各位指正! 先看一下@ 是个什么? object TestScala { def m ...
- DSP中常用的C语言关键字
const Ø使用:const 数据类型 变量名: Ø作用:优化存储器的分配,表示变量的内容是常数,不会改变. Ø举例:const char tab[1024]={显示数据}; volatile(易变 ...
- 大数据学习day13------第三阶段----scala01-----函数式编程。scala以及IDEA的安装,变量的定义,条件表达式,for循环(守卫模式,推导式,可变参数以及三种遍历方式),方法定义,数组以及集合(可变和非可变),数组中常用的方法
具体见第三阶段scala-day01中的文档(scala编程基础---基础语法) 1. 函数式编程(https://www.cnblogs.com/wchukai/p/5651185.html): ...
- 实际项目开发过程中常用C语言函数的9大用法
C语言是当中最广泛的计算机编程语言,是所有计算机编程语言的祖先,其他计算机编程语言包括当前流行的Java语言,都是用C语言实现的,C语言是编程效率最高的计算机语言,既能完成上层应用开发,也能完成底层硬 ...
- Scala中_(下划线)的常见用法
Scala中_(下划线)的常见用法 地址:https://www.jianshu.com/p/0497583ec538
- C语言中常用计时方法总结
转自:http://blog.csdn.net/fz_ywj/article/details/8109368 C语言中常用计时方法总结 1. time() 头文件:time.h 函数原型:time_t ...
- (42)嵌入式项目中常用到的C语言技能总结
嵌入式项目中常用到的C语言技能 1.指针 .结构体. 枚举. 联合.数组.字符串.链表七个专题 2.结构体指针.结构体的多重嵌套[结构体中嵌套结构体.结构体中嵌套枚举.联合体.结构体中嵌套函数指针.一 ...
- 本文将介绍“数据计算”环节中常用的三种分布式计算组件——Hadoop、Storm以及Spark。
本文将介绍“数据计算”环节中常用的三种分布式计算组件——Hadoop.Storm以及Spark. 当前的高性能PC机.中型机等机器在处理海量数据时,其计算能力.内存容量等指标都远远无法达到要求.在大数 ...
随机推荐
- nginx——rewrite模块
1.什么是Nginx的Rewrite规则? Rewrite主要的功能就是实现URL的重写,Nginx的Rewrite规则采用PCRE(Perl Compatible Regular Expressio ...
- php获取https下的内容
直接用file_get_contents,会报错: $url = ('https://xxx.com"); file_get_contents($url); 错误: Warning: fil ...
- Django db relationship
# coding=utf-8 from django.db import models """ Django数据库关系: 一对一关系:OneToOneField 多对多关 ...
- 工作总结:qsort函数用法
qsort(&g_AMTBuf[g_dwAMTLenth], m_nCount, sizeof(12), Compare); 参数说明: 1.待排序数组首地址: 2.数组中待排序元素数量: 3 ...
- JavaScript DES 加密
最近做网页数据加密工作, 使用CryptoJS v3.1.2 这个JavaScript脚本,网上比较有质量的文章实在太少,经验证加密结果与Asp.net DES加密结果一致 参考文章 https:// ...
- ExtJs3常用控件操作实例
结合工作内容,不定期更新.这里面可能会讲到一些常用的组件的操作. json: { "total": 30, "data": [{ "funcAlign ...
- Android NetWorkUtil
package com.android.hcframe.netdisc.util; import java.io.BufferedReader; import java.io.InputStreamR ...
- Unity NGUI Tween的用法
unity版本:4.5 NGUI版本:3.6.5 参考链接:http://www.colabug.com/thread-1029974-1-1.html,作者:COLABUG.COM 橘虞 htt ...
- 实战weblogic集群之应用部署
一.创建应用发布目录,上传应用包. 1.在10.70.52.11-14的/app/sinova目录下建立applications目录(名称可以自定义),作为我们应用的发布目录. $ mkdir /ap ...
- sed删除文本第一个匹配行
源文本如下,要求删除第一个为happy-123456的行. ----------------------------- aaaaaaa happy- bbbbbb asdasawe happy- ds ...