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*_). 又如要对缓冲数组Ar…
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.在元…
下划线这个符号几乎贯穿了任何一本Scala编程书籍,并且在不同的场景下具有不同的含义,绕晕了不少初学者.正因如此,下划线这个特殊符号无形中增加Scala的入门难度.本文希望帮助初学者踏平这个小山坡. 1. 用于替换Java的等价语法 由于大部分的Java关键字在Scala中拥有了新的含义,所以一些基本的语法在Scala中稍有变化. 1.1 导入通配符 *在Scala中是合法的方法名,所以导入包时要使用_代替. //Java import java.util.*; //Scala import j…
//Java7引入了一个新功能:程序员可以在数值中使用下画线,不管是 //整形数值,还是浮点型数值,都可以自由地使用下划线.通过下划线 //分隔,可以更直观的分辨数值中到底有多少位. public class UnderscoreTest { public static void main(String[] args) { //定义一个32位的二进制数,最高位为符号位. int binVal = 0B1000_0000_0000_0000_0000_0000_0000_0011; double…
1.忽略返回值 这个应该是最简单的用途,比如某个函数返回三个参数,但是我们只需要其中的两个,另外一个参数可以忽略,这样的话代码可以这样写: v1, v2, _ := function(...) 2.用在变量(特别是接口断言) 例如我们定义了一个接口(interface): type Foo interface { Say() } 然后定义了一个结构体(struct) type Dog struct { } 然后我们希望在代码中判断Dog这个struct是否实现了Foo这个interface va…
1.引入包中的全部方法 import math._ //引入包中所有方法,与java中的*类似 2.表示集合元素 val a = (1 to 10).filter(_%2==0).map(_*2) //表示集合元素 for(i <- a) println(i) 表示集合元素的元素内容,并进行计算 3.表示元组内容 val t = Tuple2(1,2) println(t._1) //打印元组内容 4.模糊匹配 val value = a //模糊匹配 val result = value ma…
作为函数的参数 一个匿名的函数传递给一个方法或者函数的时候,scala会尽量推断出参数类型.例如一个完整的匿名函数作为参数可以写为 scala> def compute(f: (Double)=>Double) = f(3) compute: (f: Double => Double)Double //传递一个匿名函数作为compute的参数 scala> compute((x: Double) => 2 * x) res1: Double = 6.0 如果参数x在=>…
本文旨在介绍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.作为“通配符”,类似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…
Scala中_(下划线)的常见用法 地址:https://www.jianshu.com/p/0497583ec538…