scala中函数简单使用记录

object funcHighLevel {

  def main(args: Array[String]): Unit = {
    // 创建一个匿名函数
    val sayFunc = (name: String) => println("hello ," + name)
    // 定义一个方法传入一个函数
    def greeting(func: (String) => Unit, names: String) {
      func(names)
    }

    // 在定义一个 name,age是参数
    val induceMyself = (name:String ,age:Int) => {
      println("hello,my name is " + name +",and i‘m " + age + " years old.")
    }
    // 这里的fun是函数名,可以调整修改
    def introduce(fun :(String , Int) => Unit , name:String , age:Int): Unit = {
      fun(name , age)
    }

    greeting(sayFunc, "yxj")

    //
    introduce(induceMyself , "yxj" , 30)

    val rs = Array(2, 3, 4, 5, 6).map((num: Int) => {
      num * num
    })
    println(rs.mkString(","))

    // 高阶函数的另一个功能,就是将函数作为返回值
    def getGreetingFunc(msg:String) = (name:String) => println(msg + " , " + name) // 传入msg,返回一个函数,参数是name
    val greetingFunc = getGreetingFunc("hello") // 调用先返回的是一个函数
    greetingFunc("yxj") // 匿名函数具体调用和执行

  }

}

  

原文地址:https://www.cnblogs.com/yxj0728/p/9281835.html

时间: 2024-08-01 19:37:14

scala中函数简单使用记录的相关文章

在Scala中函数和方法有什么区别

方法可以作为一个表达式的一部分出现(调用函数并传参),但是方法(带参方法)不能作为最终的表达式, 但是函数可以作为最终的表达式出现: scala> //定义一个方法 scala> def m(x:Int) = 2*x m: (x: Int)Int scala> //定义一个函数 scala> val f = (x:Int) => 2*x f: Int => Int = <function1> scala> //方法不能作为最终表达式出现 scala&g

scala中类的简单使用记录

import scala.collection.mutable.ArrayBuffer /** * scala 中内部类的使用 */ class Classes { class Stu(name:String , age:Int) {} val stus = new ArrayBuffer[Stu] def getStu(name:String) = { new Stu(name , 0) } } object ClazTest{ def main(args: Array[String]): U

scala中Trait简单使用

trait Log { def log(message:String) = println("log:" + message) } /** * 为实例混入trait * */ trait Logs{ def log(message:String){} } trait MyLog extends Logs { override def log(message: String): Unit = { println("log:" + message) } } class

大数据学习之Scala中main函数的分析以及基本规则(2)

一.main函数的分析 首先来看我们在上一节最后看到的这个程序,我们先来简单的分析一下.有助于后面的学习 object HelloScala { def main(args: Array[String]): Unit = { println("I Love You Scala"); } } 如图所看到的,在Scala中能够使用object和class分别定义一个类.两者还是存在一些区别.以后我会在专门的博客中给予介绍. 在Scala中定义一个函数使用:def 来修饰 完整定义一个函数为

scala中的map函数与for中的yield

首先我们从scala的函数开始: 在命令后输入:(x:Int) => x * 2 这种奇怪的格式让我们陌生,但是如果你熟悉javascript的函数如下: function myfunc(param){ alert("hello" + param); } 这是一个弹出窗口hello的函数,显示的是hellp+输入参数,这个param不只是可以传入值,也可以传入另外一个函数,为了能够传入另外一个函数作为参数,被传入的函数在写法上要改变一下,比如: var myfunc2 = fun

第6节 Scala中的高阶函数:1、2、3、

Scala高级特性 1.    课程目标 1.1.   目标一:深入理解高阶函数 1.2.   目标二:深入理解隐式转换 2.    高阶函数 2.1.   概念 Scala混合了面向对象和函数式的特性,我们通常将可以作为参数传递到方法中的表达式叫做函数.在函数式编程语言中,函数是“头等公民”,高阶函数包含:作为值的函数.匿名函数.闭包.柯里化等等. 2.2.   作为值的函数 可以像任何其他数据类型一样被传递和操作的函数,每当你想要给算法传入具体动作时这个特性就会变得非常有用. 定义函数时格式

Scala中的函数

函数的定义: private      def  methodName(argName:Type,....) : Type 权限修饰符 定义方法的关键字 方法名 (参数名:参数类型) :返回值={ 方法体.. "" 返回值 } 在Scala中,定义函数,如果函数没有参数,可以把括号省略掉 scala> def max(x : Int, y :Int ): Int={ | if(x > y) x | else y | } max: (x: Int, y: Int)Int sc

scala中的高阶函数

高阶函数 val list =List(1,2,3,4,5,6,7,8) val newList = list.map((x:Int) => 2*x) //map表示映射list中的每一个元素的值为原来的2倍 //newList中的值为 2,4,6,8,10,12,14,16 也可直接写成 val newList = list.map(x => 2*x) 也可等价写成 val newList = list.map(2*_) map函数相当于foreach 集合Set val s = Set(1

Scala中的函数表达式

最近看Spark的东西,由于之前没有接触过lambda函数表达式,所以搜了点资料,特地纪录在此 Scala中的Lambda表达式 在函数式编程中,函数是基本的构造块.Scala融合了java中的面向对象编程和函数式编程.在Scala中,一个lambda表达式是种叫做“函数”或者“函数文本”.Scala中的函数属于一等公民.它们可以被分配给vals或者vars(最终变量或者非最终变量),它们可以作为其他函数的参数,也可以组合成新的函数. 在Scala中一个函数文本写成如下形式: ? 1 (argu