1. 常用数据类型

Scala与Java有着相同的常用数据类型:
Byte、Short、Int、Long、Float、Double、Chat、Boolean(只有包装类型,无原始类型)

Scala继承层次:

来自:
https://blog.csdn.net/qq_21586623/article/details/76828049?locationNum=1&fps=1

2. 声明变量

 //var 即variable,用于声明变量
var str : String = "Hello Scala!" //val 即value,用于声明常量,类似Java中的final
val num : Int = 100;
 // var 即variable,用于声明变量
scala> var str : String = "Hello Java"
str: String = Hello Java //val 即value,用于声明常量,类似Java中的final
scala> val num : Int =100
num: Int = 100 //使用val定义的常量不允许重新赋值
scala> num = 200
<console>:12: error: reassignment to val
num = 200
^ //Scala编译器可以通过值的类型推断出变量的类型,因此变量类型可以省略
scala> val num2 = 3.14159
num2: Double = 3.14159

其中,需要注意的是:var 修饰的对象引用可以改变;val 修饰的引用则不可改变,但对象的状态却是可以改变的(与Java 中final 修饰的常量一致)

 scala> val ab = new ArrayBuffer[Int]()
ab: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer() scala> ab += 1
res2: ab.type = ArrayBuffer(1) scala> ab += 2
res3: ab.type = ArrayBuffer(1, 2) scala> ab += (3,4,5)
res4: ab.type = ArrayBuffer(1, 2, 3, 4, 5)

3. for 循环

     // 1. 每次循环将区间中的一个值赋给i
for ( i <- 0 to 10 ) println(i) // 2. for(i <- 数组)
val arr = Array(1,2,3)
for ( i <- arr ) println(i) // 3. 高级for循环
// 每个生成器都可以带一个条件,注意:if前面没有分号
for ( i <- 1 to 3 ; j <- 1 to 3 if( i != j ) )
println( i * 10 + j ) // 4.for推导式:
//如果for循环的循环体以yield开始,则该循环会构建出一个集合
//每次迭代生成集合中的一个值
val vector = for ( i <- 0 to 10 ) yield i *10

4. 方法和函数的调用

a 方法 b可以写成 a.方法(b)

scala>  1.to(10)
res0: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8,
9, 10) scala> 1 to 10
res1: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8,
9, 10) scala> 1 + 2
res2: Int = 3 scala> 1.+(2)
res3: Int = 3

参考文档: 
var 和 val 的区别: https://blog.csdn.net/a1234h/article/details/77962536

Scala学习笔记(二)——Scala基础的更多相关文章

  1. scala 学习笔记二 方法与函数

    1.介绍 Scala 有方法与函数,二者在语义上的区别很小.Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量.换句话来说在类中定义的函数即是方法. Scala 中的方法跟 Java 的 ...

  2. [Scala]Scala学习笔记二 数组

    1. 定长数组 如果你需要一个长度不变的数组,可以使用Scala中的Array. val nums = new Array[Int](10) // 10个整数的数组 所有元素初始化为0 val str ...

  3. scala学习笔记1: scala method

    刚接触scala,做练习的时候碰到一个问题,顺便mark一下. 先看下面一段代码: def sum(args:Int*) = { var result = 0 for (arg <- args) ...

  4. HTML5学习笔记二 HTML基础

    一.HTML 标题 HTML 标题(Heading)是通过<h1> - <h6> 标签来定义的. <h1>标题一</h1> <h2>标题二& ...

  5. Java基础学习笔记二 Java基础语法

    注释 注释用来解释和说明程序的文字,注释是不会被执行的. 单行注释 //这是一条单行注释 public int i; 多行注释 /* 这是 * 一段注释, * 它跨越了多个行 */ public vo ...

  6. Java基础学习笔记(二) - 面向对象基础

    面向对象 一.面向对象概述 面向对象思想就是在计算机程序设计过程中,参照现实事物,将事物的属性特征.行为特征抽象出来,描述成计算机时间的设计思想.面向对象思想区别于面向过程思想,强调的是通过调用对象的 ...

  7. C++Primer学习笔记(二、基础)

    1.两种初始化方式,直接初始化语法更灵活,且效率更高. ); // 直接初始化 direct-initialization ; // 赋值初始化 copy-initialization 2.const ...

  8. Scala学习笔记及与Java不同之处总结-从Java开发者角度

    Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续 ...

  9. 基于.net的分布式系统限流组件 C# DataGridView绑定List对象时,利用BindingList来实现增删查改 .net中ThreadPool与Task的认识总结 C# 排序技术研究与对比 基于.net的通用内存缓存模型组件 Scala学习笔记:重要语法特性

    基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可 ...

  10. tensorflow学习笔记二:入门基础 好教程 可用

    http://www.cnblogs.com/denny402/p/5852083.html tensorflow学习笔记二:入门基础   TensorFlow用张量这种数据结构来表示所有的数据.用一 ...

随机推荐

  1. css笔记 2

    定义一个类选择器.center {text-align: center} h1 有 center 类.这意味将遵守 ".center" 选择器中的规则.<h1 class=& ...

  2. 【深入理解JAVA虚拟机】第二部分.内存自动管理机制.2.HotSpot虚拟机对象探秘

    对象的创建过程 1.加载类 虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载. 解析和初始化过. 如果没有,那必须 ...

  3. January 23 2017 Week 4 Monday

    Knowledge is long, life is short. 吾生也有涯,而知也无涯. I often feel that I have a lot of things to learn, ne ...

  4. C# 解决组合优化问题

    Google Optimization Tools介绍 Google Optimization Tools(OR-Tools)是一款专门快速而便携地解决组合优化问题的套件.它包含了: 约束编程求解器. ...

  5. PTA练习题之7-1 矩阵转置(10 分)

    7-1 矩阵转置(10 分) 将一个3×3矩阵转置(即行和列互换). 输入格式: 在一行中输入9个小于100的整数,其间各以一个空格间隔. 输出格式: 输出3行3列的二维数组,每个数据输出占4列. 输 ...

  6. Android(java)学习笔记209:Android线程形态之 HandlerThread

    1.  HandlerThread Android HandlerThread 完全解析 Handler与HandlerThread区别,HandlerThread应用(对比AsyncTask) 备注 ...

  7. 通过JAVA从MQ读取消息的时候报错及解决

    如果是通过JAVA将消息写入到MQ,再通过JAVA去读取消息,采用MQMessage读消息的方法readUTF()去读取的时候,就不会报错,可以正常读出来.如果采用在MQ资源管理器中插入测试消息或者是 ...

  8. 一对一关联关系基于主键映射的异常 IdentifierGenerationException

    具体异常:org.hibernate.id.IdentifierGenerationException: attempted to assign id from null one-to-one pro ...

  9. oracle 日期常用函數sysdate

    SYSDATE   2 --◎ 可得到目前系統的時間     3           4   ex.      5     select sysdate from dual;   6          ...

  10. python 3.6.3 异常

    内置异常 在Python中,所有异常都必须是派生类的实例 BaseException.在try同一个声明中except 说提到一类特殊条款,该条款还处理来自类(从中但也不例外类派生的任何异常类它派生) ...