Scala中 下划线的用处
From: http://congli.iteye.com/blog/2169401
1、作为“通配符”,类似Java中的*。如import scala.math._
2、:_*作为一个整体,告诉编译器你希望将某个参数当作参数序列处理!例如val s = sum(1 to 5:_*)就是将1 to 5当作参数序列处理。
3、指代一个集合中的每个元素。例如我们要在一个Array a中筛出偶数,并乘以2,可以用以下办法: 
a.filter(_%2==0).map(2*_)。 
又如要对缓冲数组ArrayBuffer b排序,可以这样: 
val bSorted = b.sorted(_ 
4、在元组中,可以用方法_1, _2, _3访问组员。如a._2。其中句点可以用空格替代。
5、使用模式匹配可以用来获取元组的组员,例如 
val (first, second, third) = t 
但如果不是所有的部件都需要,那么可以在不需要的部件位置上使用_。比如上一例中val (first, second, _) = t
6、还有一点,下划线_代表的是某一类型的默认值。 
对于Int来说,它是0。 
对于Double来说,它是0.0 
对于引用类型,它是null。
Scala中 下划线的用处的更多相关文章
- scala的下划线
		1.作为“通配符”,类似Java中的*.如import scala.math._ 2.:_*作为一个整体,告诉编译器你希望将某个参数当作参数序列处理!例如val s = sum(1 to 5:_*)就 ... 
- Scala基础 - 下划线使用指南
		下划线这个符号几乎贯穿了任何一本Scala编程书籍,并且在不同的场景下具有不同的含义,绕晕了不少初学者.正因如此,下划线这个特殊符号无形中增加Scala的入门难度.本文希望帮助初学者踏平这个小山坡. ... 
- 《Java7中 下划线的新特性》
		//Java7引入了一个新功能:程序员可以在数值中使用下画线,不管是 //整形数值,还是浮点型数值,都可以自由地使用下划线.通过下划线 //分隔,可以更直观的分辨数值中到底有多少位. public c ... 
- golang中 "下划线" 的用法
		1.忽略返回值 这个应该是最简单的用途,比如某个函数返回三个参数,但是我们只需要其中的两个,另外一个参数可以忽略,这样的话代码可以这样写: v1, v2, _ := function(...) 2.用 ... 
- Scala _  下划线
		1.引入包中的全部方法 import math._ //引入包中所有方法,与java中的*类似 2.表示集合元素 val a = (1 to 10).filter(_%2==0).map(_*2) / ... 
- scala下划线
		作为函数的参数 一个匿名的函数传递给一个方法或者函数的时候,scala会尽量推断出参数类型.例如一个完整的匿名函数作为参数可以写为 scala> def compute(f: (Double)= ... 
- scala中常用但其他语言不常见的符号含义
		本文旨在介绍Scala在其他语言中不太常见的符号含义,帮助理解Scala Code. 随着我对Scala学习的深入,我会不断增加该篇博文的内容. 修改记录 ----2016.11.23 新增scal ... 
- scala中的下划线_
		1.作为“通配符”,类似Java中的*. 例如 import scala.math._ 2.:_*作为一个整体,告诉编译器你希望将某个参数当作参数序列处理! 例如 val s = sum(1 to 5 ... 
- Scala中_(下划线)的常见用法
		Scala中_(下划线)的常见用法 地址:https://www.jianshu.com/p/0497583ec538 
随机推荐
- iOS 9 学习系列:Split Screen Multitasking
			http://www.cocoachina.com/ios/20151010/13601.html iOS 9 的一个重大变化就是增加了多任务,这个多任务允许用户在屏幕上同时运行多个 app.有两种形 ... 
- VS2017 打包成exe
			在项目的解决方案 右键→ 新建项目 后出现如下选择 (如果没有找到,请在联机中搜索 visual studio installer 并安装) 选择项目类型 Setup Project,并输入名称, ... 
- 《C程序设计语言》笔记(二)
			四:函数与程序结构 1:函数之间的通信可以通过参数.函数返回值以及外部变量进行. 2:如果函数定义中省略了返回值类型,则默认为int类型.如果没有函数原型,则函数将在第一次出现的表达式中被隐式声明,比 ... 
- 创建linux中的nginx+php7+mysql环境----PHP7安装
			默认CentOs 的源 并没有php7的安装路径,所以需要手动添加源: # rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-l ... 
- spring+springMVC+Mybatis架构下采用AbstractRoutingDataSource、atomikos、JTA实现多数据源灵活切换以及分布式事务管理
			背景: 1.系统采用SSM架构.需要在10多个MYSQL数据库之间进行切换并对数据进行操作,上篇博文<springMVC+Mybatis(使用AbstractRoutingDataSource实 ... 
- Java练习 SDUT-3422_小金问呀问不会问题
			小金问呀问不会问题 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 众所周知,C语言的学习是我们程序设计基础的重点和主要 ... 
- 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google
			摘要: 作为此次Gartner报告中唯一上榜的中国科技公司,阿里云获得六个评判维度的最高分,排名第二 近日,知名调研机构Gartner发布了全球领先公共云厂商区块链服务能力报告,作为唯一上榜的中国科技 ... 
- @总结 - 2@ 位运算卷积/子集卷积 —— FWT/FMT
			目录 @0 - 参考资料@ @1 - 异或卷积概念及性质@ @2 - 快速沃尔什正变换(异或)@ @3 - 快速沃尔什逆变换(异或)@ @4 - 与卷积.或卷积@ @5 - 参考代码实现@ @6 - ... 
- Firefox浏览器怎么安装adobe flash player插件
			https://jingyan.baidu.com/article/0a52e3f435d171bf62ed7237.html 有些朋友在使用Firefox火狐浏览器,但是火狐浏览器安装以后是没有fl ... 
- CentOs7.0安装scrapy (云服务器上)
			centos7 默认Python 2.7,支持twisted 首先准备环境 yum install gcc libffi-devel openssl-devel libxml2 libxslt-dev ... 
