文档章节

Scala的语法简写操作

wiitht
 wiitht
发布于 2017/05/05 17:40
字数 539
阅读 17
收藏 0

1.下划线

你可以使用下划线“_”部分应用一个函数,结果将得到另一个函数。Scala使用下划线表示不同上下文中的不同事物,你通常可以把它看作是一个没有命名的神奇通配符。在{ _ + 2 }的上下文中,它代表一个匿名参数。你可以这样使用它:

scala> def adder(m: Int, n: Int) = m + n
adder: (m: Int,n: Int)Int
scala> val add2 = adder(2, _:Int)
add2: (Int) => Int = <function1>

scala> add2(3)
res50: Int = 5
scala> def add(x: Int) = x + 3
add: (x: Int)Int


scala> add _
res0: Int => Int = <function1>

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。

2.package操作

引入语句:

improt java.awt.Color._ // _表包下面的所有成员

引入包可以使得我们以较短的名称来访问其成员:

任何地方都可以引入:

1.重命名和隐藏方法:

import java.awt.{Color,Font} //使用选择器选择使用包中的某个成员

import java.util.{HashMap => javaHashMap} //重命名引入的成员

import java.util.{HashMap => _,_} //HashMap => _将隐藏某个成员



关键字:

import scala.math._  //以scala(关键字)开头的包可以省去前缀

 

© 著作权归作者所有

wiitht
粉丝 4
博文 158
码字总数 113941
作品 0
深圳
架构师
私信 提问
scala匿名函数

匿名函数在spark用的很多,经典用法就是: 匿名函数赋值给常量:var add = (a:Int, b:Int) => a + b; 匿名函数赋值给函数:def add = (a:Int, b:Int) => a + b; 然后就可以直接用add(2,3)了。...

cjun1990
2015/09/10
556
0
为Play初学者准备的Scala基础知识

1 前言 本文的主要目的是为了让Play Framework的初学者快速了解Scala语言,算是一篇Play Framework的入门前传吧。 使用PlayFramework可以极大的提高开发效率,但是需要注意,PlayJava入门很简...

joymufeng
2017/05/16
0
0
Scala学习--《Scala编程》

Scala学习手册--可伸缩的语言(随着使用者的需求而成长) 第一章:基本概念 Scala=FP+OO、静态语言 兼容性、简短、高层级抽象、高级的静态类别、伸缩性 兼容:与Java兼容,可无缝实施互操作。...

hanzhankang
2014/02/15
248
0
编程语言 Scala 2.12.0 正式版发布

编程语言 Scala 2.12.0 正式版发布了。 Scala 2.12.0编译器已经完全翻修,在Java 8中提供的新VM功能: trait使用默认方法直接编译到接口,这提高了二进制兼容性和Java互操作性。 Scala和Jav...

达尔文
2016/11/04
4K
15
ScalaReference路径

语法: Path ::= StableId | [id „.‟] this StableId ::= id | Path „.‟ id | [id „.‟] „super‟ [ClassQualifier] „.‟ id ClassQualifier ::= „[„ id „]‟ 路径不是类型本身,但......

超人学院
2016/07/06
4
0

没有更多内容

加载失败,请刷新页面

加载更多

哪些情况下适合使用云服务器?

我们一直在说云服务器价格适中,具备弹性扩展机制,适合部署中小规模的网站或应用。那么云服务器到底适用于哪些情况呢?如果您需要经常原始计算能力,那么使用独立服务器就能满足需求,因为他...

云漫网络Ruan
今天
5
0
Java 中的 String 有没有长度限制

转载: https://juejin.im/post/5d53653f5188257315539f9a String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西...

低至一折起
今天
17
0
OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
11
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
9
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部