• 函数式编程


    来个链接 [ 函数式编程 ]

    在函数式编程里面,方法是方法,函数是函数,两者不同。

    函数可以作为参数传递给方法 .

    package com.msym
    
    /**
      * Created by msym on 2017/7/4.
      * 函数式编程
      */
    object Demo {
      def main(args: Array[String]): Unit = {
        val res1 = m1(fun1, 10, 20)
        println(res1)
        val res2 = m1(fun2, 10, 20)
        println(res2)
    
      }
      //定义一个方法,接收三个参数:一个函数(仅仅是函数的签名),另外两个是Int类型(函数运行需要的参数)
      def m1(fun : (Int,Int) => Int, x:Int, y:Int) = {
        //调用函数
        fun(x, y)
      }
      //定义一个函数fun1
      val fun1 = (x:Int, y:Int) => x + y
      //定义另个函数fun2
      val fun2 =(x:Int, y:Int) => x * y
    
      val fun3 = (x:Int) => x
    }

    函数式编程理解例子之一 :

    函数代替了 Java 中的匿名类,

    scala 中 Array 类的 map()方法, 接收一个函数, 用于对数组内容进行操作 :

    package com.msym
    
    /**
      * Created by msym on 2017/7/4.
      * http://www.cnblogs.com/daimajun/
      */
    object Demo {
      def main(args: Array[String]): Unit = {
        val arr = Array("aaa", "bbb")
        //原数组
        for (x <- arr)
          println(x)
        //这里的toUpperCase可以加括号, 也可以不加
        val newArr = arr.map(x => x.toUpperCase())
        //新数组
        for (x <- newArr)
          println(x)
      }
    }

        打印出:

    image

    对于上面的代码, 有一种更变态的方式, map()方法中传递的函数有所不同, 如下:

    val newArr = arr.map(_.toUpperCase)

    这里的下划线 "_" 代表的是每次数组中取出的元素, 然后将其转为大写.

  • 相关阅读:
    冲刺2 05
    冲刺02 04
    人月神话阅读笔记01
    进度条
    团队冲刺第十天
    团队冲刺第九天
    学习进度条13
    团队冲刺第八天
    怎样买书更便宜
    冲刺第七天
  • 原文地址:https://www.cnblogs.com/daimajun/p/7226546.html
Copyright © 2020-2023  润新知