Scala 基础 (四):函数式编程【从基础到高阶应用】

大家好,我是。

创作时间:2022 年 6 月 29 日
博客主页: ??点此进入博客主页
—— 新时代的农民工 ??
—— 换一种思维逻辑去看待这个世界 ??
今天是加入CSDN的第1215天。觉得有帮助麻烦??点赞、??评论、收藏


文章目录


一、概述

学习函数时编程之前我们先来了解一下目前比较流行的、不同的编程范式。

编程范式:

  • 面向过程:将问题拆解为一步一步,按照步骤解决问题。
  • 面向对象:分解对象、行为、属性,通过对象关系以及行为调用解决问题。耦合低,可维护性强。
  • 函数式编程:解决问题时,将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的步骤,解决问题。

函数式编程语言中,所有值都是常量,都是一个值。Scala中推荐大家能用常量就用常量(val),符合函数式编程的基本思想。函数式编程中每段程序都会有一个返回值,(if - elsefor),本质上就是一个映射关系,表达式进行求值,做函数的映射关系。

函数式编程不关心计算机底层的实现,对开发者更加友好。命令式编程对于计算机更加的友好,执行效率比较高,函数式编程对于开发者的效率更高,但是执行效率比较低。函数式编程无副作用,利于并行处理,所以Scala特别利于应用于大数据处理,比如SparkKafka

二、函数基础

基本语法

如何定义一个函数?

def 函数名称  ( 参数名 :  参数类型 , ......) : 函数返回值类型 = {
    函数体;
}

特点说明:

  • 在Scala中,函数在代码块的任何地方都可以单独去声明出来。
  • 定义在方法中(内层)的称为函数(狭义的函数),定义在类或对象中(最外层)的函数称为方法
  • 默认使用最后一行代码作为返回值,return可省略
  • 函数没有重载和重写的概念;方法可以进行重载和重写

举个栗子:

object Test01_Function {
  def main(args: Array[String]): Unit = {
    //   定义一个函数 
    def sayHi(name: String): Unit = {
      println(name + ", sayHi!")
    }

    // 调用函数
    sayHi("lisi")

    // 调用方法 通过对象去调用
    Test01_Function.sayHi("wangwu")

    // 获取方法返回值
    val result = Test01_Function.sayHello("zhaosan")
    println(result)
  }

  // 定义对象的方法
  def sayHi(name: String): Unit = {
    println("Hi , "+name)
  }

  def sayHello(name: String): String = {
    println("hello , "+name)
    return "hello"
  }
}

函数参数

  • Scala中定义函数参数可以有默认值,指的是如果当前的函数声明时指定了默认值,调用的时候可以不传参数,此时该参数的值为默认值,默认参数必须全部放在末尾。
  • 可变参数。参数列表中如果有多个参数,可变参数放在最后。
  • 带名参数:指定参数传值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值