1.scala 函数定义

2.scala 高阶函数

3.匿名函数

4.柯里化

  1. import scala.math._
  2.  
  3. /**
  4. * @author xwolf
  5. * @date 2017-04-24 9:57
  6. * @since 1.8
  7. */
  8. class Function {
  9. // _ 将round 方法转化为函数
  10. val cel = round _
  11.  
  12. def add(x:Int,y:Int) = x+y
  13.  
  14. //函数
  15. def f(x : => Int) = x.+(3)
  16.  
  17. def m (r : => Double) = {
  18. val rs=(Math.PI*r*r*0.5)
  19. rs}
  20.  
  21. //高阶函数
  22. def a(s:(Int)=>Int,z:Int)= s(z)+this.f(z)
  23.  
  24. //匿名函数定义
  25. val minus = (m:Int) => m-1
  26.  
  27. // 柯里化函数定义
  28. def ads(x:Int)=(y:Int) => x*y
  29.  
  30. //阶乘 (递归实现)
  31. def sm(x:Int):BigInt={
  32. if (x==1 || x==0) 1
  33. else sm(x-1)*x
  34. }
  35.  
  36. //阶乘 (reduceLeft 实现)
  37. def rsm(x:Int):BigInt={
  38. (1 to x).reduceLeft(_ * _)
  39. }
  40.  
  41. // 求数组的最大值
  42. def max(ary :Array[Int]):Int={
  43. ary.reduceLeft(_ max _)
  44. }
  45.  
  46. // 求数组的最大值
  47. def getMax(ary :Array[Int]):Int={
  48. //底层也是reduceLeft
  49. ary.max
  50. }
  51. }

测试:

  1. object FunctionTest {
  2.  
  3. def main(args: Array[String]): Unit = {
  4.  
  5. val function = new Function
  6. val cel = function.cel(32)
  7. println(cel)
  8. val a = function.f(1)
  9. println(a)
  10. val b = function.add(12,32)
  11. println(b)
  12. val c = function.m(2.4)
  13. println(c)
  14.  
  15. val d = function.minus(3)
  16. println(d)
  17. //柯里化
  18. val e = function.ads(2)(10)
  19. println(e)
  20.  
  21. val f = function.sm(5)
  22. println(f)
  23.  
  24. val f2 = function.rsm(5)
  25. println(f2)
  26.  
  27. val ary =Array(3,32,4,2,2)
  28. val g =function.getMax(ary)
  29. println(g)
  30.  
  31. //高阶函数使用
  32. val af = function.a(a=>4,3)
  33. print(af)
  34. }
  35.  
  36. }

  

  

[scala] scala 函数 (⑦)的更多相关文章

  1. Scala 匿名函数

    Scala 中定义匿名函数的语法很简单,箭头左边是参数列表,右边是函数体. 使用匿名函数后,我们的代码变得更简洁了. 下面的表达式就定义了一个接受一个Int类型输入参数的匿名函数: var inc = ...

  2. scala匿名函数

    package com.ming.test import scala.math._ object AnonymousFunc { def valueAtOneQuarter(f:(Double)=&g ...

  3. Scala应用函数

    我们使用“_” 来代替单个的参数,实际上你也可以使用“_”来代替整个参数列表,比如说,你可以使用 print _ 来代替 println (_). someNumbers.foreach(printl ...

  4. Scala学习——函数高级操作

    scala函数高级操作 一.字符串高级操作 多行字符串和插值 package top.ruandb.scala.Course06 object StringApp { def main(args: A ...

  5. Scala学习——函数

    一.函数的定义(def) object FunctionApp { //定义函数:方法体内最后一行为返回值,不需要使用return def add(a:Int,b:Int):Int={ a + b } ...

  6. scala mapPartitionsWithIndex函数的使用

    var rdd1=sc.makeRDD(Array((1,"A"),(2,"B"),(3,"C"),(4,"D")),2 ...

  7. Scala的函数,高阶函数,隐式转换

    1.介绍 2.函数值复制给变量 3.案例 在前面的博客中,可以看到这个案例,关于函数的讲解的位置,缺省. 4.简单的匿名函数 5.将函数做为参数传递给另一个函数 6.函数作为输出值 7.类型推断 8. ...

  8. Scala(二) —— 函数

    try 表达式 var result = try{ Integer.parseInt("dog") }catch{ case _ => 0 }finally{ println ...

  9. scala中函数简单使用记录

    object funcHighLevel { def main(args: Array[String]): Unit = { // 创建一个匿名函数 val sayFunc = (name: Stri ...

随机推荐

  1. [leetcode]Minimum Depth of Binary Tree--二叉树层序遍历的应用

    题目: Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the ...

  2. linux brctl command not found

    [root@localhost ~]# brctl-bash: brctl: command not found 解决方法: [root@localhost ~]# yum install bridg ...

  3. 添加相应型号和头文件到Keil中

  4. sublime text 2使用方法

    笔者用过的一些软件用来写Verilog代码,比如notepad+,ultra,editplus等,近日在群里看到大家在讨论一个比较有意思的软件,sublime text,才发现有种相见恨晚的感觉,其实 ...

  5. 关于Unity中新版动画系统的使用

    Mecanim动画 1:旧版动画系统只能通过代码来控制动画播放,随着动画种类变多,代码复杂度也会增加,同时动画过渡也需要非常繁琐的代码控制,为了让有经验的动画师开发动画,unity推出了针对人物角色的 ...

  6. 关于Unity中RectTransform和Transform

    以前一直以为在Inspector面板上的是Transform,后来才发现原来2D是RectTransform,3D是Transform 3D面板上显示的是位置坐标组件Transform,2D面板上显示 ...

  7. git使用情景2:commit之后,想撤销commit

    ================实际操作============================== 提交到git上撤回 git reset head^1 提交到本地 撤回 git reset --s ...

  8. Axiom3D:Ogre公告板集与合并批次

    在上文中,我们把Ogre里的网格分解成点线面后,我们要完成一个新的功能,在点上突出显示. 得到顶点位置后,这个功能也就是一个很简单的事,最开始是每个顶点添加一个子节点,节点上添加一个圆点. forea ...

  9. 解决maven jmxtools 缺失的问题

    原因:有版权,所以maven仓库基本都下架了jmxtool. 目前可用的,我就找到了wso2这家,配置如下: <project xmlns="http://maven.apache.o ...

  10. CodeCombat森林关卡Python代码

    地牢关卡过完,接下来是边缘的森林! 1,森林保卫战 hero.moveUp() hero.buildXY("fence", 40, 52) hero.moveDown() hero ...