第5章 scala函数式编程(重要)

第5章 函数式编程(重要)

在之前Java课程的学习中,我们一直学习的就是面向对象编程,所以解决问题都是按照面向对象的方式来处理的。比如用户登陆等业务功能,但是接下来,我们会学习函数式编程,采用函数式编程的思路来解决问题。scala编程语言将函数式编程和面向对象编程完美地融合在一起了。

  • 面向对象编程

分解对象,行为,属性,然后通过对象的关系以及行为的调用来解决问题

  • 函数式编程

将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的功能按照指定的步骤,解决问题。

5.1 基础函数编程

5.1.1 基本语法

[修饰符] def 函数名 ( 参数列表 ) [:返回值类型] = {
   
    函数体
}

private def test( s : String ) : Unit = {
   
    println(s)
}

5.1.2 函数&方法

  • scala 中存在方法与函数两个不同的概念,二者在语义上的区别很小。scala 方法是类的一部分,而函数是一个对象,可以赋值给一个变量。换句话来说在类中定义的函数即是方法。scala 中的方法跟 Java 的类似,方法是组成类的一部分。scala 中的函数则是一个完整的对象。

  • l Scala中的方法和函数从语法概念上来讲,一般不好区分,所以简单的理解就是:方法也是函数。只不过类中声明的函数称之为方法,其他场合声明的就是函数了。类中的方法是有重载和重写的。而函数可就没有重载和重写的概念了,但是函数可以嵌套声明使用,方法就没有这个能力了,千万记得哟。

5.1.3 函数定义

  1. 无参,无返回值
object ScalaFunction {
   
    def main(args: Array[String]): Unit = {
   
        def fun1(): Unit = {
   
            println("函数体")
        }
        fun1()
    }
}
  1. 无参,有返回值
object ScalaFunction {
   
    def main(args: Array[String]): Unit = {
   
        def fun2(): String = {
   
            "zhangsan"
        }
        println( fun2() )
    }
}
  1. 有参,无返回值
object ScalaFunction {
   
    def main(args: Array[String]): Unit = {
   
        def fun3( name:String ): Unit = {
   
            println( name )
        }
        fun3("zhangsan")
    }
}
  1. 有参,有返回值
object ScalaFunction {
   
    def main(args: Array[String]): Unit = {
   
        def fun4(name:String): String = {
   
            "Hello " + name
        }
        println( fun4("zhangsan") )
    }
}
  1. 多参,无返回值
object ScalaFunction {
   
    def main(args: Array[String]): Unit = {
   
        def fun5(hello:String, name:String): Unit = {
   
            println( hello + " " + name )
        }
        fun5("Hello", "zhangsan")
    }
}
  1. 多参,有返回值
object ScalaFunction {
   
    def main(args: Array[String]): Unit = {
   
        def fun6(hello:String, name:String): String = {
   
            hello + " " + name
        }
        println( fun6("Hello", "zhangsan"))
    }
}

5.1.4 函数参数

  1. 可变参数
object ScalaFunction {
   
    def main(args: Array[String]): Unit = {
   
        def fun7(names:String*): Unit = {
   
            println(names)
        }
        fun7()
        fun7( "zhangsan" )
        fun7( "zhangsan", "lisi" )
    }
}

可变参数不能放置在参数列表的前面,一般放置在参数列表的最后

oobject ScalaFunction {
   
    def main(args: Array[String]): Unit = {
   
        def fun777( name:String, names:String* ): Unit = {
   
            println( name )
            println( names )
        }
    }
}
  1. 参数默认值
object ScalaFunction {
   
    def main(args: Array[String]): Unit = {
   
        def fun8( name:String, password:String = "000000" ): Unit = {
   
            println( name + "," + password )
        }
        fun8("zhangsan", "123123")
        fun8("zhangsan")
    }
}
  1. 带名参数
object ScalaFunction {
   
    def main(args: Array[String]): Unit = {
   
        def fun9( password:String = "000000", name:String ): 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值