【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);//省略了
注意,一定要是方法没有参数的时候,有参数的时候不能省略。
【scala】语法的省略的更多相关文章
- scala语法在spark withScope上的应用
withSpout在spark中是用来做DAG可视化的,它在代码里的用法如下(以map为例,spark 2.0.0版本) def map[U: ClassTag](f: T => U): RDD ...
- scala语法解析(解码指环)
看惯了JAVA的语法,再看scala的语法,有的晦涩难懂.正好遇到一个介绍scala语法的文章,就直接截图留念.省的再临时抱佛脚了.
- 1.scala语法
对象的apply方法 (1)对象调用apply()方法,可省略成() (2)string对象的apply方法返回第n个字符 "hello"(4) //'o' if语句的返回值 ja ...
- Java和Scala语法比较
类型推断 挑逗指数: 四星 我们知道,Scala一向以强大的类型推断闻名于世.很多时候,我们无须关心Scala类型推断系统的存在,因为很多时候它推断的结果跟直觉是一致的. Java在2016 年也新增 ...
- Spark记录-Scala语法基础
参考:http://docs.scala-lang.org/cheatsheets/index.html.http://docs.scala-lang.org/.http://www.scala-la ...
- Scala 语法基础
一 简介 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性.Scala 运行在Java虚拟机上,并兼容现有的Java程序.Scal ...
- Scala语法笔记
JAVA中,举例你S是一个字符串,那么s(i)就是该字符串的第i个字符(s.charAt(i)).Scala中使用apply的方法 JAVA与C++的?:操作符 等同于Scala的 if ( x &g ...
- Scala 语法(一)
(1)基本语法 变量 val var(可变变量): 数据类型 Byte,Char,Int,Short,Long,String(字符),Float,Double,Boolean(true,flase). ...
- Scala语法1
目录 main方法和def 函数 变量,类型转换,字符串分割拼接 文件读写和JDBC 面向对象编程 继承 case类,最常用的 main方法和def 函数 package scala_01 /** * ...
随机推荐
- 【零基础学习iOS开发】【02-C语言】08-基本运算
一.算术运算符 算术运算符很地简单.就是小学数学里面的一些加减乘除操作.只是呢.还是有一些语法细节须要注意的. 1.加法运算符 + 1 int a = 10; 2 3 int b = a + 5; 在 ...
- Motion camera 真人动作捕捉器
视频1 http://v.youku.com/v_show/id_XNzk4MDA2MTg4.html 视频2 http://v.youku.com/v_show/id_XNzk4MDA5OTIw.h ...
- 在Docker上安装配置Oracle教程
地址:https://github.com/wnameless/docker-oracle-xe-11g Docker shell 下: docker pull wnameless/oracle-xe ...
- mongo 一次插入多条
db.getCollection('organization').insert( [ {"organizationTitle" : "台州广播电台1", &qu ...
- win10下的linux一些问题
1.文件位置在: C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\Loc ...
- c#中类和成员的修饰符介绍
类访问修饰符: public 访问级别最高,公共访问没有限制. internal 只允许在本程序集内访问,其他程序集或站点引用其所在的程序集无法访问此类. 例如程序集LibraryA写有ClassA, ...
- php 内存泄漏
所谓内存泄漏是指进称在执行过程中,内存的占有率逐步升高,不释放, 系统所拥有的可用内存越来越少的现象. php-fpm耗光内存,不释放,就是所谓的内存泄漏,内存泄漏对长期运行的程序有威胁,所以应该定期 ...
- 08 Spring框架 AOP (一)
首先我们先来介绍一下AOP: AOP(Aspect Orient Programming),面向切面编程,是面向对象编程OOP的一种补充.面向对象编程是从静态角度考虑程序的结构,面向切面编程是从动态的 ...
- Django 知识补漏单例模式
Django 知识补漏单例模式 单例模式:(说白了就是)创建一个类的实例.在 Python 中,我们可以用多种方法来实现单例模式: 1.文件导入的形式(常用) s1.py class Foo(obje ...
- 20145229吴姗珊《网络对抗》shellcode注入&Return-to-libc攻击深入
20145229吴姗珊<网络对抗>shellcode注入&Return-to-libc攻击深入(待上传) shellcode注入 shellcode是一段代码,是溢出程序和蠕虫病毒 ...