1.scala 函数定义

2.scala 高阶函数

3.匿名函数

4.柯里化

import scala.math._

/**
* @author xwolf
* @date 2017-04-24 9:57
* @since 1.8
*/
class Function {
// _ 将round 方法转化为函数
val cel = round _ def add(x:Int,y:Int) = x+y //函数
def f(x : => Int) = x.+(3) def m (r : => Double) = {
val rs=(Math.PI*r*r*0.5)
rs} //高阶函数
def a(s:(Int)=>Int,z:Int)= s(z)+this.f(z) //匿名函数定义
val minus = (m:Int) => m-1 // 柯里化函数定义
def ads(x:Int)=(y:Int) => x*y //阶乘 (递归实现)
def sm(x:Int):BigInt={
if (x==1 || x==0) 1
else sm(x-1)*x
} //阶乘 (reduceLeft 实现)
def rsm(x:Int):BigInt={
(1 to x).reduceLeft(_ * _)
} // 求数组的最大值
def max(ary :Array[Int]):Int={
ary.reduceLeft(_ max _)
} // 求数组的最大值
def getMax(ary :Array[Int]):Int={
//底层也是reduceLeft
ary.max
}
}

测试:

object FunctionTest {

  def main(args: Array[String]): Unit = {

    val function = new Function
val cel = function.cel(32)
println(cel)
val a = function.f(1)
println(a)
val b = function.add(12,32)
println(b)
val c = function.m(2.4)
println(c) val d = function.minus(3)
println(d)
//柯里化
val e = function.ads(2)(10)
println(e) val f = function.sm(5)
println(f) val f2 = function.rsm(5)
println(f2) val ary =Array(3,32,4,2,2)
val g =function.getMax(ary)
println(g) //高阶函数使用
val af = function.a(a=>4,3)
print(af)
} }

  

  

[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. golang sqrt error练习

      练习:错误 从先前的练习中复制 Sqrt 函数,并修改使其返回 error 值. 由于不支持复数,当 Sqrt 接收到一个负数时,应当返回一个非 nil 的错误值. 创建一个新类型 type Er ...

  2. HTML(四):行级标签和块级标签

    一.行级标签 行级标签又称为内联标签,行级标签不会单独占据一行,设置宽高无效,行内内部可以容纳其他行内元素,但不可以容纳块元素,不然会出现无法预知的效果. 常见行级标签: span.strong.em ...

  3. 定义与声明、头文件与extern总结

     用#include可以包含其他头文件中变量.函数的声明,为什么还要extern关键字? 如果我想引用一个全局变量或函数a,我只要直接在源文件中包含#include<xxx.h> (xxx ...

  4. 常用包管理三类工具:dpkg、apt和aptitude

    常用的包管理包含三类工具:dpkg.apt和aptitude.人们总是对前面的两个工具用得比较多,而对 aptitude 用得比较少,事实上 aptitude 是很强大的. 在这里,对这三个工具做一点 ...

  5. 自然语言交流系统 phxnet团队 创新实训 个人博客 (十四)

    关于WikiExtractor的学习笔记: WikiExtractor是一个Python 脚本,专门用于提取和清洗Wikipedia的dump数据,支持Python 2.7 或者 Python 3.3 ...

  6. SAP DBDI 网银接口实现案例

    在财务共享中心SSC实施中,为了提高AP和对账的效率,不可避免的需要实现和网上银行的集成.笔者为各位分析该案例如下: 为什么要上网银? 2).和SAP的无缝集成 3).直接在SAP中和银联对接 4). ...

  7. 【转】【Android】Android Drawable Shape 组合画田字格

    使用layer-list组合多个Shap <?xml version="1.0" encoding="utf-8"?> <layer-list ...

  8. Java如何从数组中查找公共的元素?

    在Java中,如何从数组中查找公共的元素? 示例 以下示例显示了如何从两个数组中查找公共元素并将其存储在数组中. package com.yiibai; import java.util.*; pub ...

  9. Mybatis表关联多对一

    在上章的 一对多 中,我们已经学习如何在 Mybatis 中关联多表,但在实际项目中也是经常使用 多对一 的情况,这些查询是如何处理的呢,在这一节中我们来学习它.多表映射的多对一关系要用到 mybit ...

  10. Maven Web应用

    创建Web应用程序 要创建一个简单的java web应用程序,我们将使用Maven的原型 - web应用插件.因此,让我们打开命令控制台,进入到C: MVN目录并执行以下命令mvn命令. C:MVN& ...