zoukankan      html  css  js  c++  java
  • 【scala】定义变量和函数

    1.定义变量

      Scala的变量分为两种,val和var。

      val跟java的final变量类似,一旦初始化就不能被重新赋值。

      var类似于java的非final变量,在整个生命周期内var可以被重新赋值。

      示例

        var  greeting :String = “hello world!”;

      Scala并不是和java一样在变量名之后给出类型,而是在变量名后,变量名和类型之间用冒号(:)隔开。

      我们还可以这样写

        var greeting = “hello world!”;

      这里并没有声明变量的类型,因为Scala具有类型判断的能力,可以不显式指定类型。

    2.定义函数

      函数定义由def开始,然后是函数名和圆括号中以逗号隔开的参数列表。

              函数名          参数列表            返回结果类型

      def    max    (x :Int , y :Int )  :   Int  =  {

        //函数内容

      }

      如果函数只有一条语句,也可以选择不是使用花括号。

        def max (x:Int,y:Int)= if(x<y)x else y

      下面是不接收任何参数也不返回任何有意义的结果的函数

        def greet() = println(“hello world”);

      返回结果是Unit,类似于java中的void,表示该函数并不返回任何由实际意义的结果。

    3.函数式编程风格

      Scala允许采用指令式编程,但是鼓励采用函数式编程风格。

      两种编码风格有什么差异呢?

      一个显著性的标志式如果代码包含任何var变量,它通常是指令风格的,比如JAVA C++ C

      而代码完全没有var,只包含了val,那么它可能是函数式的。

      例如

        

    def printArgs(args:Array[String]):Unit {
        var i = 0;
        while(i<args.length){
               println(args(i));
               i+=1; 
        } 
    }     
    //这个是典型的指令式编程
    //我们可以去掉上述代码中的var,转换成函数式编程
    def printArgs(args:Array[String]):Unit {
        for(arg<-args)
            println(arg);
    }

      使用函数式编程跟指令式编程相比较,更清晰精简,也更少出错。

      但是Scala并没有强制你去使用函数式风格来编程,Scala式指令式/函数式混合类型的语言。

  • 相关阅读:
    一、zuul如何路由到上游服务器
    一、hystrix如何集成在openfeign中使用
    一、ribbon如何集成在openfeign中使用
    二、openfeign生成并调用客户端动态代理对象
    一、openfeign的自动配置
    BootStrap【一、概述】
    JavaSpring【七、AspectJ】
    JavaSpring【六、AOP的API】
    JavaSpring【五、AOP基础】
    目录整理
  • 原文地址:https://www.cnblogs.com/zzhangyuhang/p/8654180.html
Copyright © 2011-2022 走看看