码迷,mamicode.com
首页 > 其他好文 > 详细

scala学习笔记4--scala的函数一

时间:2016-08-05 17:46:35      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

默认值:

def sayMyName(name : String = "Jack"){
		println(name)
}

可变参数:

def sumMoreParameters(elem : Int*) = {
	  var sum = 0
		for(e <- elem){
			println(e)
			sum += e
		}
	  sum
}

下划线的使用:

def add(a:Int,b:Int) = a+b
def add2  = add(_:Int,2)

递归函数:需要显式的给予函数的返回类型

def fac(n:Int):Int = if( n <= 0) 1 else n*fac(n-1)

函数柯里化:

把这个参数一个个独立开来写,这就是柯里化

def mulitply(x:Int)(y:Int) = x*y
	
def m2 = mulitply(2)_;

柯里化就是把参数可以分开来,把部分函数参数可以用下划线来代替

匿名函数声明方式

val t = ()=>333

:后面是数据类型,c代表传进来的参数

def testfunc02(c : ()=>Int ){
      println(c())
      1000
 }

匿名函数 

val d1 = (a:Int)=> a+100;

匿名函数作为参数,其实就是参数名,后面跟上参数类型,然后是表达式

def testf1(callback : (Int,Int)=>Int )={
    	println(callback(123,123));
}

嵌套函数,其实就是def里面套一个def

def add3(x:Int, y:Int ,z:Int) : Int = {
		def add2(x:Int, y:Int):Int = {
			x + y
		}
		add2(add2(x,y),z)
}
def sum(f : Int => Int) : (Int , Int) => Int = {
    		def sumF(a : Int , b : Int) : Int = 
    		  if (a >b ) 0 else f(a) + sumF( a + 1 , b)
    		 sumF
}

 

scala学习笔记4--scala的函数一

标签:

原文地址:http://www.cnblogs.com/dongdone/p/5741998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!