我们直到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);//省略了

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

【scala】语法的省略的更多相关文章

  1. scala语法在spark withScope上的应用

    withSpout在spark中是用来做DAG可视化的,它在代码里的用法如下(以map为例,spark 2.0.0版本) def map[U: ClassTag](f: T => U): RDD ...

  2. scala语法解析(解码指环)

    看惯了JAVA的语法,再看scala的语法,有的晦涩难懂.正好遇到一个介绍scala语法的文章,就直接截图留念.省的再临时抱佛脚了.

  3. 1.scala语法

    对象的apply方法 (1)对象调用apply()方法,可省略成() (2)string对象的apply方法返回第n个字符 "hello"(4) //'o' if语句的返回值 ja ...

  4. Java和Scala语法比较

    类型推断 挑逗指数: 四星 我们知道,Scala一向以强大的类型推断闻名于世.很多时候,我们无须关心Scala类型推断系统的存在,因为很多时候它推断的结果跟直觉是一致的. Java在2016 年也新增 ...

  5. Spark记录-Scala语法基础

    参考:http://docs.scala-lang.org/cheatsheets/index.html.http://docs.scala-lang.org/.http://www.scala-la ...

  6. Scala 语法基础

    一 简介 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性.Scala 运行在Java虚拟机上,并兼容现有的Java程序.Scal ...

  7. Scala语法笔记

    JAVA中,举例你S是一个字符串,那么s(i)就是该字符串的第i个字符(s.charAt(i)).Scala中使用apply的方法 JAVA与C++的?:操作符 等同于Scala的 if ( x &g ...

  8. Scala 语法(一)

    (1)基本语法 变量 val var(可变变量): 数据类型 Byte,Char,Int,Short,Long,String(字符),Float,Double,Boolean(true,flase). ...

  9. Scala语法1

    目录 main方法和def 函数 变量,类型转换,字符串分割拼接 文件读写和JDBC 面向对象编程 继承 case类,最常用的 main方法和def 函数 package scala_01 /** * ...

随机推荐

  1. 4.Data Types in the mongo Shell-官方文档摘录

    总结: 1.MongoDB 的BSON格式支持额外的数据类型 2 Date 对象内部存储64位字节存整数,存储使用NumberLong()这个类来存,使用NumberInt()存32位整数,128位十 ...

  2. WSGI基础知识(转)

    add by zhj: WSGI全称Web Server Gateway Interface,即Web网关接口.其实它并不是OSI七层协议中的协议,它就是一个接口(即函数)而已,而WSGI规定了该接口 ...

  3. 这些Python骚操作,你知道吗?

    0x00 世界,你好 ​程序员第一次接触语言或者框架,基本上都有个 Hello World 的例子,这里 Python 直接将它做成了一个包. 0x01 Python 哲学 ​ Python 执行 i ...

  4. 分布式计算hadoop三大组件

    设计原则:移动计算,而不是移动数据 计算层:Map/Reduce调度层:YARN数据层:HDFS 这三层之间没有必然的依赖性,只是经常这么搭配,而且都是hadoop那个包里一起安装的,三层都可以独立运 ...

  5. 10046 trace详解(2)--tkprof

      10046或10053生成的文件格式比较乱,直接查看有一定的困难,ORACLE自带的一个格式化命令工具tkprof可以将生成的.trc文件进行格式化,具体用说如下: 一.直接输入tkprof不带任 ...

  6. 集合遍历(Set,List,Map)

    一.Set遍历 定义一个set Set<String> books = new HashSet<String>(); books.add("Java"); ...

  7. sublime Text emmet插件使用手册

    转自:http://www.w3cplus.com/tools/emmet-cheat-sheet.html 介绍 Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工 ...

  8. Spark机器学习1·编程入门(scala/java/python)

    Spark安装目录 /Users/erichan/Garden/spark-1.4.0-bin-hadoop2.6 基本测试 ./bin/run-example org.apache.spark.ex ...

  9. 官方online ddl

    一.5.6版本online DDL 操作 In Place Rebuilds Table Concurrent DML Only Modifies Metadata 说明 add/create sec ...

  10. OpenGL核心技术之Shadow Mapping改进版

    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解 ...