What does => mean in Scala?

操作符=>在Scala中什么意思?

百度了下,有个论坛给出了比较全面的回答,请参见http://stackoverflow.com/questions/6951895/what-does-and-mean-in-scala

为了便于理解,这里翻译下大体内容。

在Scala中,根据=>出现的场景,=>有4种意思。

1、当=>出现在值中(in a value)时,表示进入(introduce)一个函数字面量,或者lambda表达式,比如下列花括号中的内容:

List(1,2,3).map { (x: Int) => x * 2 }

2、当=>出现在类型(type)中,其左右两侧都是符号(symbol)时,表示一种语法糖(syntactic sugar),A=>T表示Function<1>[A, T]

(对于Function<1>[A, T],明天再解释)

3、当=>出现在方法或者函数参数的类型声明中,在=>左侧没有符号时,表示传名参数(by-name parameter),比如:

def unless(cond: Boolean, func: () =>Any)={

if(!cond) {

func()

}

}

也可表示为:

def unless(cond: Boolean, expr: =>Any)={

if(!cond) {

expr

}

}

传名函数明天再解释。

4、=>出现在case语句中,用来分割模式与结果,比如:

case x => y

题外话:=>怎么发音哪?

http://stackoverflow.com/questions/274022/how-do-i-pronounce-as-used-in-lambda-expressions-in-net/274635

这个论坛中有个讨论,比较统一的读法应该是 goes to

最新文章

  1. 使用JavaScript访问子节点方法elementNode.childNodes时,需要注意的地方
  2. linux环境下安装jdk
  3. php 运行脚本shell
  4. MFC获取系统当前时间的几种方法
  5. LA 4287
  6. android 点九PNG技术 适应不同分辨率 完美显示效果
  7. jquery定义表格宽度
  8. 使用TortoiseGit对Git版本进行分支操作
  9. LinkedList : 双向链表与实现
  10. openldap 编译报错MozNSS not found
  11. 如何把activity当成dialog
  12. 激活IDEA方法
  13. mysql-SQL Error: 1205, SQLState: 41000
  14. Altium Designer (17.0) 打印输出指定的层
  15. awk按顺序去除重复行
  16. There are 0 datanode(s) running and no node(s) are excluded in this operation.
  17. 01:jQuery的下拉选select2插件用法
  18. libco协程库上下文切换原理详解
  19. 怎么查看在centos中创建的用户组
  20. Wireshark中TCP segment of a reassembled PDU的含义

热门文章

  1. [Linux] 网络
  2. 深入Asyncio(八)异步迭代器
  3. iOS开发入门
  4. go with go
  5. 开源监控系统Prometheus介绍
  6. 五个知识体系之-SQL学习-第三天
  7. opencv的x64库的版本和vs的版本的对应关系
  8. 内存分配器 (Memory Allocator)
  9. 后缀自动机的python实现
  10. session,cookie的理解(总结)