zoukankan      html  css  js  c++  java
  • Scala 函数式编程进阶 2 更详 代码说明

    package com.xing.listfile
    
    /**
      * Created by DengNi on 2017/2/11.
      */
    object functionalProgramming {
    
      def main(args: Array[String]) {
        // 把函数赋值给一个变量
        val hs = helloSpark _  //此处应该是一个不可变量,但是如果是可变的话 也可以运行  但是代码中会提示不可变 val
        hs("spark")
        //def fhs(name :String) = helloSpark _  // 把一个函数赋值给另外一个函数 ,这样子结果好像不对,不是赋值 ,是返回值
        def fhs(name :String) = helloSpark(name)  //这个对 ,原理 ??? 这个说明的是函数的返回值是一个函数 ,而不是赋值
        fhs("fhs")
        //函数中更常用的是 匿名函数
        val hsn = (name:String) => println("hi , my name is " + name )
        hsn("spark")
    
        def sellOrder() = (name:String) => println("hi , my name is " + name ) // 这么写是对的 ,但是不能解释是不是最优 ,应该没有问题
        sellOrder()("sparkQq")
    
        def lineItem(message:String) = (name:String) => println("hi , my name is " + name +message) // 这么写是对的 ,但是不能解释是不是最优 ,没有问题
        lineItem("hi")("sparkQWES") //这就是currying
    
        val onlyLineItem = lineItem("hello") //currying  也可以分步写成这种格式
        onlyLineItem("sparkQWES")
    
        //函数可以作为参数传递给另外一个函数 ,当参数的函数也需要在其它地方定义好
    
        def myFunction(f:(String) => Unit , name :String): Unit ={
          f(name)
        }
        myFunction(functionSo,"nameSpark")
        def functionSo(name :String): Unit ={   //但是如果给出一个函数参数的名字 了 ,其实就没有必要这么做了 ,一般我们都是匿名函数给一个变量
          println("name pass fun to fun "  + name)
        }
    
        val valSO = (name:String) =>  println("name pass fun to fun val so "  + name) //就像上面说的 ,更多是这么操作
        myFunction(valSO,"nameSpark")
    
    
      }
    
      def helloSpark(name:String): Unit ={
        println("hi, " + name)
      }
    
    }
    





  • 相关阅读:
    笨方法学python中执行argv提示ValueError: not enough values to unpack (expected 4, got 1)
    VMware workstation安装
    Redis bigkey分析
    MySQL drop table 影响及过程
    MySQL 大表硬连接删除
    ES elasticsearch 各种查询
    ES elasticsearch 各种聚合
    ES elasticsearch 聚合统计
    ES elasticsearch 实现 count单字段,分组取前多少位,以地理位置中心进行统计
    MySQL行溢出、varchar最多能存多少字符
  • 原文地址:https://www.cnblogs.com/TendToBigData/p/10501288.html
Copyright © 2011-2022 走看看