Scala学习笔记(三)—— 方法和函数
1. 方法
方法使用 def 定义:
def 方法名(参数名:参数列表,…) :返回值类型 = { 方法结构体 }
scala> def add(x : Int ,y : Int):Int = x+y
add: (x: Int, y: Int)Int // 返回值可以省略,Scala编译器可以通过值的类型推断出变量的类型
scala> def subtract(x : Int,y : Double) = x-y
subtract: (x: Int, y: Double)Double // 当返回值为空时,可以省略,也可以写为Unit,类似与Java的void
scala> def printMulti(x : Int ,y :Int): Unit = println(x * y)
printMulti: (x: Int, y: Int)Unit
抽象方法
 abstract class Test{
   //  没有方法体的方法为抽象的,包含它的类型于是也是一个抽象类型
   def add(x : Int,y : Int)
 }
ps:对于递归方法,必须指定返回类型
2. 函数
Scala的函数是基于Function家族,0-22,一共23个Function Trait可以被使用,数字代表了Funtcion的入参个数
// 函数的定义
val add = new Function2[Int,Int,Int] {
override def apply(x: Int, y: Int): Int = x+y
} // 函数的定义简写
val subtract = (x :Int,y:Int) => x-y
方法转为函数:
// 定义一个方法
scala> def add(x:Int,y:Int) =x+y
add: (x: Int, y: Int)Int // 将该方法转为函数
scala> add _
res9: (Int, Int) => Int = <function2>
3. 方法和函数的区别
https://blog.csdn.net/u010839779/article/details/80849607
Scala学习笔记(三)—— 方法和函数的更多相关文章
- scala 学习笔记二  方法与函数
		
1.介绍 Scala 有方法与函数,二者在语义上的区别很小.Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量.换句话来说在类中定义的函数即是方法. Scala 中的方法跟 Java 的 ...
 - 【原】Java学习笔记008 - 方法(函数)
		
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 方法/函数 Met ...
 - MySQL学习笔记(三):常用函数
		
一:字符串函数 需要注意的几个细节: 1.cancat中有一个字符串为null,则结果为null. 2.left(str,x) 和 right(str,x)中x为null,则不返回任何字符串,不是nu ...
 - [Scala]Scala学习笔记三 Map与Tuple
		
1. 构造映射 可以使用如下命令构造一个映射: scala> val scores = Map("Alice" -> 90, "Kim" -> ...
 - Scala学习笔记三
		
scala变量理解: package com.cxy.scala object Hello { def main(args: Array[String]): Unit = { println(&quo ...
 - scala学习笔记:高阶函数
		
scala> def power(y:Double)=(x:Double)=>Math.pow(x,y) warning: there were 1 deprecation warning ...
 - scala 学习笔记三 闭包
		
闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量. 闭包通常来讲可以简单的认为是可以访问一个函数里面局部变量的另外一个函数. 如下面这段匿名的函数: val multiplier = (i: ...
 - Typescript 学习笔记三:函数
		
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
 - ES6学习笔记<三> 生成器函数与yield
		
为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...
 - angular学习笔记(三十)-指令(6)-transclude()方法(又称linker()方法)-模拟ng-repeat指令
		
在angular学习笔记(三十)-指令(4)-transclude文章的末尾提到了,如果在指令中需要反复使用被嵌套的那一坨,需要使用transclude()方法. 在angular学习笔记(三十)-指 ...
 
随机推荐
- php简单的数组递归
			
参照 http://www.oschina.net/code/snippet_105637_11401 的例子 $arr = array('aa' => array('bb' => ...
 - hosts配置
			
转自:http://www.cnblogs.com/ylemzhang/archive/2011/10/19/2217187.htm 注意: hosts文件不支持端口映射 如果指定端口参考: //直 ...
 - Hbase集群部署及shell操作
			
本文详述了Hbase集群的部署. 集群部署 1.将安装包上传到集群并解压 scp hbase-0.99.2-bin.tar.gz mini1:/root/apps/ tar -zxvf hbase-0 ...
 - Code First TPH、TPT、TPC与继承类
			
一.Table Per Hierarchy (TPH,默认) 每个层次结构共用一个表,类的每一个属性都必须是可空的. 1.默认行为 只建立一个表,把基类和子类中的所有属性都映射为表中的列. 在这种处理 ...
 - sso(single sign on)
			
sso系统使用 https://www.cnblogs.com/shuai-server/p/8987070.html 一:什么是sso(single sign on) ? sso(单点登录系统)简单 ...
 - 关于函数指针与c++多态
			
原文 https://www.cnblogs.com/zhchngzng/p/4013031.html 虚函数是实现多态的重要元素,请看: class A { public: void a0(){c ...
 - D3——根据数据画图
			
为DOM元素添加class .attr("class", "bar") //为元素添加class属性,<div class="bar" ...
 - D3——动态绑定数据
			
一.绑定数组元素 , , , , ]; d3.select("body") .selectAll("p") .data(dataset) .enter() .a ...
 - 第一章 介绍Django
			
Django是一个网络开发框架,有了这个框架,能是网站开发更高效有趣,能轻松的创建和维护高质量的网站应用. 这一本书的目的是使读者成为一个Django的专家.主要着重两点.第一,深入的解释Django ...
 - non-fragile:oc2.0特性
			
Runtime Versions and Platforms There are different versions of the Objective-C runtime on different ...