Scala基础语法

  声明与定义:

    val,常量声明                       val  x:T(把x声明成一个类型为T的常量)  x是变量的名字,T是变量的类型          val  x:T=e    x是常量,值是不可以改变的

    var,变量声明       var  x:T  (和val一样)  var x:T=e  x是变量,值是可以改变的

    类型省略(默认类型)          val x=e   var x=e

    声明省略(连续声明)          val x1,x2,x3  等价于 val x1; val x2; val x3                  var x1,x2,x3:T=e 等价于 var xn:T=e

    def,函数声明           def abc(xn:T):T*=e     def定义函数,abc函数名,xn参数,T参数类型,后面的T返回值类型

    无参函数         def adder()=e

    type类型声明

    class,类声明

    object,对象声明

Scala有哪些类型?

    1.数值型:Int,Long,Short,Byte

    2.浮点型:Double,Float

    3.布尔型:Boolean

    4.字符型:char , String Char序列

    除了String归于java.lang包外,其他基本类型均是scala包的成员

    Int等基本类型的全名是scala.Int,但是包scala同java.long的所有成员都能自动引用,因为能再实际使用时候简化

    

Scala操作符运算:

    使用中缀数学操作符+、-、*、/、%并产生对应的数值结果

    使用比较操作符<、>、>=、=<并产生布尔值结果

    使用逻辑操作符&&、||并产生布尔值结果

    使用对等操作符==、!=并产生布尔值结果

    使用位操作符&、|、^、~并产生数值结果

      

    实际上,ScaLa没有任何操作符,所有的操作符运算都是对方法(函数)的调用

    如1+2实际上是调用了.+() 这个方法1.+(2)

    在具体的调用中,调用+实际上包含了+的各种类型参数的重载,而无需额外定义                          1+2就是两个Int类型相加,1+1.2就是Int+Double

    操作符具有优先级                1+5*4=21 (1+5)*4=24

    操作符优先级一般如下:

      特殊字符 > */% > +- > : > =!> <> > & > ^ > | > 其他字母 > 赋值操作符    

    scala支持如“***”“+-+”之类的操作符重载,考虑其优先级一般以第一个符号为主

    值得注意的是,形如“*=”的操作符重载,会被认为是赋值操作符而具有最低的优先级

      m *= n+5 等价于 m *= (n+5)

语句结束:

    Scala是基于行的语言,分号和换行均可作为语句的结束

    判定换行是否为语句的结束有以下规则:

      换行前的符号是一个语句的结束:常量、标识符、保留字及其他分隔符

      换行后的符号是一个语句的开始:除部分分隔符及保留字外的所有符号

      符号处在一个允许多语句的区域:Scala源文件中,匹配的{与}间

    

    换行不作为语句的结束:

      匹配的(与)之间,[与]之间

      XML模式下的区域

      case符号及匹配的=>符号之间

      if、while、for、type是允许跨两行的合法语句

通常的Scala编写规范:

    代码格式化,不同段落、不同文件的Scala应保持相同的语法格式

    层次间缩进,避免长语句

    合理的命名;

      短作用域短名字,长作用域长名字

      通用缩写,词意与目的相近,莫要使用add来命名一个做减法的函数

      避免不同用途时重用名字

      避免用反引号声明保留字

      有返回值的方法(函数)用可描述的名字

    利用{}创建复合表达式

    及时注释

Scala基础(1)的更多相关文章

  1. 【Scala学习之一】 Scala基础语法

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...

  2. Scala学习(一)--Scala基础学习

    Scala基础学习 摘要: 在篇主要内容:如何把Scala当做工业级的便携计算器使用,如何用Scala处理数字以及其他算术操作.在这个过程中,我们将介绍一系列重要的Scala概念和惯用法.同时你还将学 ...

  3. scala 基础知识总结

    在最开始处引入 log 相关的 包 import org.apache.log4j.{Logger,Level} 在需要屏蔽日志输出的地方加上这两行代码 // 屏蔽不必要的日志显示在终端上 Logge ...

  4. 1.scala基础语法总结

    Scala基础语法总结:Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的.如果一行里写多个语句那么分号是需要的 val s = "菜鸟教程"; pr ...

  5. Scala 基础(8)—— 占位符_和部分应用函数

    1. 占位符 _ 针对 Scala 基础(7)—— 函数字面量和一等函数 中最后提到的,关于 filter 函数字面量的精简写法,可以使用占位符 _ 来代替. 占位符_,用来表示一个或者多个参数.(这 ...

  6. Scala 基础(7)—— 函数字面量和一等函数

    1. 函数字面量 在 Scala 基础(3)—— 基础类型和基础操作 中提到了函数字面量,这里具体解释函数字面量的语法. 下面展示一个具体的函数字面量,它由三部分组成: (x: Int, y: Int ...

  7. Scala 基础(5)—— 构建函数式对象

    有了 Scala 基础(4)—— 类和对象 的前提,现在就可以来构建一个基于 Scala 的函数式对象. 下面开始构造一个有理数对象 Rational. 1. 主构造方法和辅助构造方法 对于每一个类的 ...

  8. Scala基础知识[一]

    摘要:在Scala 是 Scalable Language 的简写,是一门多范式(multi-paradigm)的编程语言.设计初衷是要集成面向对象编程和函数式编程的各种特性.Scala 运行在Jav ...

  9. Scala基础简述

    * Scala基础简述 本文章作为Scala快速学习的教程,前提环境是:我假设在此之前,你已经学会了Java编程语言,并且我们以随学随用为目标(在此不会深度挖掘探讨Scala更高级层次的知识).其中语 ...

随机推荐

  1. The current identity ( XXXX) does not have write access to ‘C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files’.解决办法

    环境windows 2008+IIS 7 找到 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET FilesTempora ...

  2. AndroidManifest 配置主活动

    在activity标签中写如下代码: <activity android:name=".MainActivity" android:label="This is M ...

  3. Windows 7 任务栏图标消失(变透明,仍然占有地方,但是点击无反应)的解决方法

    解决方案:清理资源管理器缓存(重启资源管理器) 1.打开程序管理器(ctrl+shift+esc) 2.在进程那里找到"explorer.exe",然后按结束进程 3.然后在文件( ...

  4. 64位Windows的Dos中取消了edit命令

    前段时间在玩dos命令行的时候,用copy con创建了txt文件后想对其进行编辑,然后我又不想用记事本,所以去网上找命令行中对文本文件进行编辑的命令(纯属想装B),结果看到了edit命令. 一敲,就 ...

  5. java使用elasticsearch分组进行聚合查询(group by)-项目中实际应用

    java连接elasticsearch 进行聚合查询进行相应操作 一:对单个字段进行分组求和 1.表结构图片: 根据任务id分组,分别统计出每个任务id下有多少个文字标题 .SQL:select id ...

  6. yaml格式

    yaml中允许表示三种格式,分别为常量值.对象和数组 例如: 其中#作为注释,yaml中只有行注释 基本格式要求: 1.大小写敏感:2.使用缩进代表层级关系: 3.缩进只能使用空格,不能使用tab键, ...

  7. linux 删除指定日期之前的文件

    两种方法: 1. 在一个目录中保留最近三个月的文件,三个月前的文件自动删除. find /email/v2_bak -mtime +92 -type f -name *.mail[12] -exec ...

  8. python第三十二课——栈

    栈:满足特点 --> 先进后出,类似于我们生活中的子弹夹 [注意] 对于栈结构而言:python中没有为其封装特定的函数,我们可以使用list(列表)来模拟栈的特点 使用list对象来模拟栈结构 ...

  9. Python高级--闭包与装饰器

    前言:在Python中,闭包是一种非常有用的功能!它通常与装饰器一起搭配使用,可以在不改变被装饰函数的功能的基础上,完成更多的功能.如权限认证. 一.如何定义闭包 1.闭包就是两个嵌套的函数,外层函数 ...

  10. Docker技术入门与实战 第二版-学习笔记-9-Docker Compose 项目-3-Django项目实例

    使用 Django 我们现在将使用 Compose 配置并运行一个 Django/PostgreSQL 应用.在此之前,先确保 Compose 已经安装. 1.通过编辑 Dockerfile文件来指定 ...