• Scala的函数至简原则


    对于scala语言来说,函数的至简原则是它的一大特色。下面让我们一起来看看分别有什么吧!

    函数至简原则:能省则省!

    初始函数

    def test(name:String):String={
          return name
    }
    
    • 1
    • 2
    • 3

    1、return可以省略,Scala会使用函数体的最后一行代码作为返回值。

    可以简化为:return省略
    def test01(name:String):String={
          name
    }
    
    • 1
    • 2
    • 3
    • 4

    2、如果函数体只有一行代码,可以省略花括号。

    可以简化为:{}省略
    def test02(name:String): String = name
    
    
    • 1
    • 2
    • 3

    3、返回值如果可以推断出来,那么可以省略(: 和返回值类型一起省略)。

    可以简化为:: String一起省略
    def test03(name:String) = name
    
    这个表达式是不是相当于数学中函数表达式:f(x) = x
    
    • 1
    • 2
    • 3
    • 4

    4、如果有return,则不能省略返回值类型,必须指定
    在这里插入图片描述
    5、如果函数明确声明unit,那么即使函数体中使用return关键字也不起作用
    在这里插入图片描述
    6、如果期望是无返回值类型,那么可以省略等号。

    def test06(name:String) {
          name
    }
    
    • 1
    • 2
    • 3

    在一些场景下,我们可以把这个叫做过程(process)。相当于定义了一个即将要执行的子过程,一行一行的执行。
    7、如果函数无参,但是声明了参数列表,那么调用时,小括号可写可不写。

    def test07():String= {
          println("hello world")
    }
    
    //调用
    test07()
    test07
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    8、如果函数没有参数列表,那么函数定义时,小括号可以省略,调用时小括号也必须省略。

    def test08:Unit= {
          println("hello world")
    }
    
    //调用
    //test08()  这个会报错
    test08
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    9、如果不关心函数名称,只关心逻辑处理,那么函数定义名称 可以省略

    def test09(name:String):Unit= {
          println(name)
    }
    可以简化为:
    (name:String ) => {println(name)}
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    Web开发之常用框架BootStrap
    数据挖掘-模型的评估(四)
    AtCoder Beginner Contest 279 F BOX 并查集 (大意失荆州
    一文学习yolov5 实例分割:从训练到部署
    【前端面试】-- 必知必会的promise题
    WPF/C#:异常处理
    springboot - 2.7.3版本 - (六)学习如何使用Elasticsearch-8.4.2
    经典算法(查找与排序)
    spark学习索引
    Linux环境下安装jdk8
  • 原文地址:https://blog.csdn.net/vipshop_fin_dev/article/details/138007237