scala学习笔记:理解函数
定义一个函数:
scala> def foo(x:Int)=x*2
foo: (x: Int)Int
可以采用匿名参数:
scala> def foo:((Int)=>Int) = _*2
foo: Int => Int
这个函数的类型是Int=>Int:
scala> var bar = foo _
bar: Int => Int = <function1>
scala> var bar:(Int)=>Int = foo
bar: Int => Int = <function1>
可以直接定义指向匿名函数的变量:
scala> var foo = (x:Int)=>x*2
foo: Int => Int = <function1>
如下代码也可以达到同样的效果:
scala> def foo = (x:Int)=>x*2
foo: Int => Int
scala> def foo(x:Int)=x*2
foo: (x: Int)Int
但个人觉得(待证实),第一种写法相当于先定义了一个匿名函数,然后再赋值给foo
scala学习笔记:理解函数的更多相关文章
- scala 学习笔记(01) 函数定义、分支、循环、异常处理、递归
package yjmyzz import scala.io.StdIn object ScalaApp { def main(args: Array[String]) { println(" ...
- scala学习笔记:函数与方法
http://stackoverflow.com/questions/2529184/difference-between-method-and-function-in-scala A Functio ...
- Scala 学习笔记之函数(2)
class OldStudent extends Student { def filterName(s: String, f: String => String) = { if (s != nu ...
- Scala 学习笔记之函数(1)
class Student { val mySayHello1: String => Unit = sayHello val mySayHello2: (String, Int) => U ...
- Scala 学习笔记之函数(3)
class student{ def sayHello(name: => String){ println(s"Hello, $name, welcome $name") } ...
- 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性
基于.net的分布式系统限流组件 在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...
- Scala学习笔记及与Java不同之处总结-从Java开发者角度
Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续 ...
- Matlab学习笔记 figure函数
Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...
- matlab学习笔记 bsxfun函数
matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...
- matlab学习笔记13_1 函数返回值
一起来学matlab-matlab学习笔记13函数 13_1 函数返回值 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://blog.csdn.net/qq_36556 ...
随机推荐
- Java同步问题面试参考指南
同步 在多线程程序中,同步修饰符用来控制对临界区代码的访问.其中一种方式是用synchronized关键字来保证代码的线程安全性.在Java中,synchronized修饰的代码块或方法不会被多个线程 ...
- Java网络编程(URL&URLConnection)
package cn.itcast.net.p2.ie_server; import java.io.IOException; import java.io.InputStream; import j ...
- Android实例-解决虚拟键盘遮挡问题(XE8+小米2)
结果: 1.可以自动向上移动,来防遮挡,但同时发现个问题,如果是按硬件返回没有问题,要是点输入法(QQ.百度输入法)上的隐藏就不行了. 2.点击Edit2后出现输入法,点输入法上的隐藏后, 再点Edi ...
- A Tour of Go Interfaces
An interface type is defined by a set of methods. A value of interface type can hold any value that ...
- python 偏函数
functools.partial可以设置默认参数和关键字参数的默认值 Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的 ...
- windows 一个进程可以允许最大的线程数
默认情况下,一个线程的栈要预留1M的内存空间 而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程 但是内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小. 你也 ...
- SQL2005查询所有表的大小
IF NOT EXISTS (SELECT * FROM [tempdb].sys.objects WHERE object_id = OBJECT_ID(N'[tempdb].[dbo].[tabl ...
- NOTES : A Model of Gas Exchange for Hyperpolarized Xe(129) Magnetic Resonance of the Lung
NOTES : A Model of Gas Exchange for Hyperpolarized Xe(129) Magnetic Resonance of the Lung 背景知识: Ga ...
- Centos6 源代码部署MySQL5.6
mysql从5.5版本号開始,不再使用./configure编译,而是使用cmake编译器,详细的cmake编译參数能够參考mysql官网文档(※ 很重要) http://dev.mysql.com/ ...
- [Practical Git] Filter commit history with git log arguments
In the last lesson, we learned how to format the git log output; in this lesson we will learn how to ...