• 【scala】语法的省略


    我们直到JAVA在语法方面是冗长的,但是JAVA的可读性非常好。

    在Scala的语法并不像JAVA那样冗长,但是又不失可读性,我们这里记录一下常见的语法省略。

    首先是我们可以省略数据类型,因为Scala有自动的类型判断机制。

    完整写法   var  myVar :String = “Scala”; 

    我们可以省略掉类型声明,让它来自己判断   var myVar = “Scala”;

    其实方法也是可以省略返回数据类型的。

    完整写法   def add(a:Int,b:Int) :Int = { return a+b }  //我们定义一个add方法,参数为两个Int类型,返回值为Int类型

    我们还可以省略掉return,方法把最后一个计算结果当作返回结果返回。

     def add(a:Int,b:Int) :Int = { a+b }

    我们这里可以将方法的返回类型和等号省略掉,让语言自己来判断。

     def add(a:Int,b:Int)  { a+b }

    当我们方法块中的语句只有一行的时候,我们可以省略到大括号

    def add(a:Int,b:Int) :Int = a+b ;

    当我们方法块中的语句只有一行的时候,我们可以省略到大括号的同时省略掉返回值类型

    def add(a:Int,b:Int)  = a+b ;

    但是一定要注意,我们要么省略等于号,要么省略大括号。两者不能同时省略。

    def add(a:Int,b:Int)  a+b ;//等于号和大括号都没写,这样写是错误的!

    示例

    class Counter{

      private var value = 0;

      def add():Unit = value+= 1//等同于def add() { value+=1 }

      def current() { value }  //等同于 def current() :Int = value;

    }//注意,scala中没有i++一说,只有i+=1.

    当我们在调用无参方法的时候也可以省略掉后边的圆括号。

    var myCounter = new Counter;//省略掉了圆括号var myCounter = new Counter();

    myCounter.add();//没省略

    println(myCounter.current);//省略了

    注意,一定要是方法没有参数的时候,有参数的时候不能省略。

  • 相关阅读:
    LeetCode Fraction to Recurring Decimal
    LeetCode Excel Sheet Column Title
    LeetCode Majority Element
    LeetCode Reverse Nodes in k-Group
    LeetCode Recover Binary Search Tree
    一天一个设计模式(10)——装饰器模式
    一天一个设计模式(9)——组合模式
    一天一个设计模式(8)——过滤器模式
    一天一个设计模式(7)——桥接模式
    一天一个设计模式(6)——适配器模式
  • 原文地址:https://www.cnblogs.com/zzhangyuhang/p/8921653.html
Copyright © 2020-2023  润新知