zoukankan      html  css  js  c++  java
  • 【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);//省略了

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

  • 相关阅读:
    一个优秀测试的自我修养
    二.自动化接口测试---用例设计思路、模版
    关于文件读写的一些笔记
    模块导入---如何在一个文件中导入其它模块,来调用它的变量、函数等,以节省代码量
    变量以及作用域----(局部变量、全部变量...)
    python连接mysql数据库
    python修改txt文件内容
    使用PyQt4写界面后台程序方法总结
    unresolved import 解决办法
    怎样使用pyinstaller打包
  • 原文地址:https://www.cnblogs.com/zzhangyuhang/p/8921653.html
Copyright © 2011-2022 走看看