zoukankan      html  css  js  c++  java
  • scala学习笔记4--scala的函数一

    默认值:

    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
    }
    
  • 相关阅读:
    Jquery源码分析(一)
    Lazyload 延迟加载效果
    20100128
    Linux共享库(so)动态加载和升级
    shell 数组
    Git常用命令解说
    linux shell 数组建立及使用技巧
    linux下查看用户及用户组的方法
    Zypper 用法
    linux shell 数组的长度计算、修改、循环输出等操作
  • 原文地址:https://www.cnblogs.com/dongdone/p/5741998.html
Copyright © 2011-2022 走看看