• Scala 函数式编程02


    目录

     

    函数参数

    函数至简原则


     

    函数参数

    案例实操

    (1)可变参数

    (2)如果参数列表中存在多个参数,那么可变参数一般放置在最后

    (3)参数默认值,一般将有默认值的参数放置在参数列表的后面

    (4)带名参数

    1. package Chapter05
    2. object Test_03FunctionParameter {
    3. def main(args: Array[String]): Unit = {
    4. //可变参数
    5. def f1(name:String*):Unit={
    6. println(name)
    7. }
    8. f1("小李")
    9. f1("aaa","bbb","ccc")
    10. //如果参数列表中存在多个参数,那么可变参数一般放置在最后
    11. def f2(name:String,age:Int*):Unit ={
    12. println("name:" + name + "age:" + age)
    13. }
    14. f2("小黄")
    15. f2("小李",18)
    16. //参数默认值,一般将有默认值的参数放置在参数列表的后面
    17. def f3(name: String = "重庆财经"): Unit={
    18. println("My school is" + " "+ name)
    19. }
    20. f3()
    21. f3("cqcj")
    22. //带名参数
    23. def f4(name: String , age : Int): Unit={
    24. println(age + "岁的"+ name + "赣南师范大学")
    25. }
    26. f4("小佳",19)
    27. f4(age = 19 ,name = "小佳")
    28. }
    29. }

    运行结果

    8ec7fcb6d769424d8dba29d28eb3ee4f.png

    函数至简原则

    函数至简原则:能省则省

    一、至简原则细节

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

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

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

    4、如果有return,则不能省略返回值类型,必须指定

    5、如果函数明确声明 unit ,那么即使函数体中使用return关键字也不起作用

    6、Scala如果期望是无返回值类型,可以省略等号

    7、如果函数无参,但是声明了参数列表,那么调用时,小括号,可加可不加

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

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

    二、案例实操

    1. package Chapter05
    2. object Test_04Simplify {
    3. def main(args: Array[String]): Unit = {
    4. def f0 (name:String) : String = {
    5. return name
    6. }
    7. println(f0("小李1"))
    8. println("================")
    9. //1、return可以省略,Scala会使用函数体的最后一行代码作为返回值
    10. def f1 (name:String) : String = {
    11. name
    12. }
    13. println(f1("小李2"))
    14. println("===============")
    15. //2、如果函数体只有一行代码,可以省略花括号
    16. def f2 (name:String) : String = name
    17. println(f2("小李3"))
    18. println("================")
    19. //3、返回值类型如果能够推断出来,那么可以省略( :和返回值类型一起省略)
    20. def f3 (name:String) = name
    21. println(f3("小李4"))
    22. println("================")
    23. //4、如果有return,则不能省略返回值类型,必须指定
    24. def f4 (name:String) : String = {
    25. return name
    26. }
    27. println(f4("小李5"))
    28. println("================")
    29. //5、如果函数明确声明 unit ,那么即使函数体中使用return关键字也不起作用
    30. def f5 (name:String) : Unit = {
    31. return name
    32. }
    33. println(f5("小李6"))
    34. println("================")
    35. //6、Scala如果期望是无返回值类型,可以省略等号
    36. def f6 (name:String) {
    37. println(name)
    38. }
    39. println(f6("小李7"))
    40. println("================")
    41. //7、如果函数无参,但是声明了参数列表,那么调用时,小括号,可加可不加
    42. def f7 () : Unit ={
    43. println("小李8")
    44. }
    45. f7()
    46. f7
    47. println("================")
    48. //8、如果函数没有参数列表,那么小括号可以省略,调用时小括号必须省略
    49. def f8 : Unit ={
    50. println("小李9")
    51. }
    52. f8
    53. println("================")
    54. //9、如果不关心名称,只关心逻辑处理,那么函数名(def)可以省略
    55. def f9 (name : String) : Unit ={
    56. println(name)
    57. }
    58. println("================")
    59. //匿名函数,lambda表达式
    60. (name : String) => { println(name) }
    61. println("================")
    62. }
    63. }

    运行结果

    b1b412aaaec34a0aa4e7cf19bfb45fa2.png

     

     

     

     

     

  • 相关阅读:
    老卫带你学---leetcode刷题(33. 搜索旋转排序数组)
    PD快充芯片IP6566 遥遥领先 集成多种快充协议车充SOC芯片 支持CV/CC模式
    TPC-C 、TPC-H、TPC-DS和SSB测试基准(Benchmark)介绍
    Git全套,从简到细
    Vue2.0打包指定路由前缀
    总线带宽计算公式
    微服务概述
    Linux下kibana的安装与配置
    Rust4.1 Managing Growing Projects with Packages, Crates, and Modules
    高并发和大数据下的高级算法与数据结构:如何快速获取给定年龄区间的微信用户数量或快速获取美团中购买量前k的品类
  • 原文地址:https://blog.csdn.net/qq_70085330/article/details/126235437