文档章节

类和对象之分号推断

柳哥
 柳哥
发布于 2014/06/05 21:01
字数 358
阅读 60
收藏 0

Scala程序里,语句末尾的分号通常是可选的。愿意可以加,若一行里仅有一个语句也可以不加。不过,如果一行包含多条语句时,分号则是必须的

val s = “hello”; println(s);

输入跨越多行的语句时,多数情况无须特别处理,scala将在正确的位置分隔语句。例如:

if(x < 2)
  Println(“too small”)
else
  println(“ok”)

然而,偶尔scala也许并不如你所愿,把句子分拆成两部分:

x
+ y

这会被当做两个语句x和+y。如果希望把它作为一个语句 x + y,可以把它放在括号里:

(x
+y)

或者也可以把 + 放在行末,也正源于此,串接类似于+这样的中缀操作符的时候,scala通常的风格是把操作符放在行尾而不是行头:

z + 
y +
z


分号推断的规则
分割语句的具体规则既出人意料地简单又非常有效。那就是,除非以下情况的一种成立,否则行尾被认为是一个分号
1. 疑问行由一个不能合法作为语句结尾的字结束,如句点或中缀操作符。
2. 下一行开始于不能作为语句开始的词。
3. 行结束于括号(......)或方框[......]内部,因为这些符号不可能容纳多个语句。

© 著作权归作者所有

共有 人打赏支持
柳哥
粉丝 206
博文 405
码字总数 347782
作品 0
杭州
技术主管
私信 提问
Scala基础语法

Scala 是一种有趣的语言。它一方面吸收继承了多种语言中的优秀特性,一方面又没有抛弃 Java 这个强大的平台,它运行在 Java 虚拟机 (Java Virtual Machine) 之上,轻松实现和丰富的 Java 类库...

岁月留痕
2015/12/08
35
0
Scala学习笔记-基础语法

Scala学习笔记-基础语法 OneCoder2016-09-2046 阅读 Scala 上手学习Scala语言。先熟悉一下语法。对于Scala笔者也是完全的新手,对scala的设计思想和实现原理没有太多了解。错误在所难免,还望...

OneCoder
2016/09/20
0
0
Scala基础入门-1

首先需要Scala开发环境的搭建,网上自己找教程。 声明常量与变量 val foo = 0 // 常量var bar = 0 // 变量    在Scala中,更加鼓励使用val来进行声明,也就是推荐使用常量。在大部分时候不...

wei-spring
2015/11/08
0
0
Java泛型--泛型方法

Java泛型--目录 概述 泛型不但可用作用于整个类上,同时还可以作用于参数化方法.是否拥有泛型方法,与其所在类是否是泛型没有关系. 泛型方法使得该方法能够独立于类而产生变化,有一个基本原则:...

我叫张凯
2016/01/12
689
0
Groovy 相对 Java 的一些新玩意

Groovy 是轻量级的 Java 方法,闭包中 return 语句是可选的,如果没有 return,则默认返回方法、闭包的最后一条语句的值 方法和类默认的修饰符都是 public Groovy 不强迫我们捕获自己不关系的...

zachaxy
2017/12/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS实例详解:Flex布局

本文由云+社区发表 本文将通过三个简单的实例,实际应用上篇文章的基础理论知识,展示下Flex布局是如何解决CSS布局问题。 一.垂直居中 这里同时用非flex布局和flex布局两种方式来实现,可以...

腾讯云加社区
5分钟前
0
0
安装全局webpack

https://www.jianshu.com/p/119a825d8bba npm ls webpack 和npm ls webpack -g 查看本地和全局版本 npm install webpack@1.15.0 -g 全局 然后到项目里面 npm install npm init npm install w......

lsy999
17分钟前
0
0
/etc/profile和/etc/environment的区别

/etc/profile 文件 当一个用户登录Linux系统或使用 su 命令切换到另一个用户时,设置用户环境第一个读取的文件就是 /etc/profile ,此文件为系统全局变量配置文件,且仅仅在第一次登录系统时...

calmsnow
23分钟前
2
0
rabbitMQ日常管理(转)

一、网页登录方法 http://127.0.0.1:15672/ 用户名和密码默认为guest/guest 用java代码去连接rabbitmq用的端口是5672 二、rabbitMQ基本概念 RabbitMQ是一个开源的AMQP实现,服务器端用Erlan...

__HuWei
29分钟前
1
0
gitlab cicd

https://docs.gitlab.com/ee/ci/docker/using_docker_build.html

kut
30分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部