数组相关操作
This commit is contained in:
@ -3,20 +3,13 @@
|
||||
<nav>
|
||||
<a href="#一数据类型">一、数据类型</a><br/>
|
||||
<a href="#二字面量">二、字面量</a><br/>
|
||||
<a href="#21-整数字面量">2.1 整数字面量</a><br/>
|
||||
<a href="#22-字符串字面量">2.2 字符串字面量</a><br/>
|
||||
<a href="#23-符号字面量">2.3 符号字面量</a><br/>
|
||||
<a href="#24-插值表达式">2.4 插值表达式</a><br/>
|
||||
<a href="#三运算符">三、运算符</a><br/>
|
||||
<a href="#31-运算符即方法">3.1 运算符即方法</a><br/>
|
||||
<a href="#32-运算符优先级">3.2 运算符优先级</a><br/>
|
||||
<a href="#33-逻辑运算符">3.3 逻辑运算符</a><br/>
|
||||
<a href="#34-对象相等性">3.4 对象相等性</a><br/>
|
||||
</nav>
|
||||
|
||||
|
||||
## 一、数据类型
|
||||
|
||||
### 1.1 类型支持
|
||||
|
||||
Scala 拥有下表所示的数据类型,其中Byte、Short、Int、Long和Char类型统称为整数类型,整数类型加上Float和Double统称为数值类型。Scala数值类型的取值范围和Java对应类型的取值范围相同。
|
||||
|
||||
| 数据类型 | 描述 |
|
||||
@ -36,6 +29,53 @@ Scala 拥有下表所示的数据类型,其中Byte、Short、Int、Long和Char
|
||||
| Any | Any是所有其他类的超类 |
|
||||
| AnyRef | AnyRef类是Scala里所有引用类(reference class)的基类 |
|
||||
|
||||
### 1.2 定义变量
|
||||
|
||||
Scala的变量分为两种,val和var,其区别如下:
|
||||
|
||||
+ **val** : 类似于Java中的final变量,一旦初始化就不能被重新赋值;
|
||||
+ **var** :类似于Java中的非final变量,在整个声明周期内var可以被重新赋值;
|
||||
|
||||
```scala
|
||||
scala> val a=1
|
||||
a: Int = 1
|
||||
|
||||
scala> a=2
|
||||
<console>:8: error: reassignment to val // 不允许重新赋值
|
||||
|
||||
scala> var b=1
|
||||
b: Int = 1
|
||||
|
||||
scala> b=2
|
||||
b: Int = 2
|
||||
```
|
||||
|
||||
### 1.3 类型推断
|
||||
|
||||
在上面的演示中,并没有声明a是Int类型,但是程序还是把a当做Int类型,这就是Scala的类型推断。在大多数情况下,你都无需指明变量的类型,程序会自动进行推断。如果你想显式的声明类型,可以在变量后面指定,如下:
|
||||
|
||||
```scala
|
||||
scala> val c:String="hello scala"
|
||||
c: String = hello scala
|
||||
```
|
||||
|
||||
### 1.4 Scala解释器
|
||||
|
||||
在scala命令行中,如果没有对输入的值指定赋值的变量,则输入的值默认会赋值给`resX`(其中X是一个从0开始递增的整数),`res`是result的缩写,这个变量可以在后面的语句中进行引用。
|
||||
|
||||
```scala
|
||||
scala> 5
|
||||
res0: Int = 5
|
||||
|
||||
scala> res0*6
|
||||
res1: Int = 30
|
||||
|
||||
scala> println(res1)
|
||||
30
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 二、字面量
|
||||
|
||||
Scala和Java字面量在使用上很多相似,比如都使用F或f表示浮点型,都使用L或l表示Long类型。下文主要介绍两者差异部分。
|
||||
@ -167,7 +207,30 @@ Int类中包含了多个重载的`+`方法,用于分别接收不同类型的
|
||||
|
||||
<div align="center"> <img width='700px' src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/scala-int+.png"/> </div>
|
||||
|
||||
### 3.2 运算符优先级
|
||||
### 3.2 逻辑运算符
|
||||
|
||||
和其他语言一样,在Scala中&&,||的执行是短路的,即如果左边的表达式能确定整个结果,右边的表达式就不会被执行,这满足大多数使用场景。但是如果你需要在无论什么情况下,都执行右边的表达式,则可以使用&或|代替。
|
||||
|
||||
### 3.3 赋值运算符
|
||||
|
||||
在Scala中没有Java中的`++`和`--`运算符,如果你想要实现类似的操作,只能使用`+=1`,或者`-=1`。
|
||||
|
||||
```scala
|
||||
scala> var a=1
|
||||
a: Int = 1
|
||||
|
||||
scala> a+=1
|
||||
|
||||
scala> a
|
||||
res8: Int = 2
|
||||
|
||||
scala> a-=1
|
||||
|
||||
scala> a
|
||||
res10: Int = 1
|
||||
```
|
||||
|
||||
### 3.4 运算符优先级
|
||||
|
||||
操作符的优先级如下:优先级由上至下,逐级递减。
|
||||
|
||||
@ -183,11 +246,7 @@ scala> 2<<(2+2)
|
||||
res1: Int = 32
|
||||
```
|
||||
|
||||
### 3.3 逻辑运算符
|
||||
|
||||
和其他语言一样,在Scala中&&,||的执行是短路的,即如果左边的表达式能确定整个结果,右边的表达式就不会被执行,这满足大多数使用场景。但是如果你需要在无论什么情况下,都执行右边的表达式,则可以使用&或|代替。
|
||||
|
||||
### 3.4 对象相等性
|
||||
### 3.5 对象相等性
|
||||
|
||||
如果想要判断两个对象是否相等,可以使用`==`和`!=`,这两个操作符可以用于所有的对象,包括null。
|
||||
|
||||
|
Reference in New Issue
Block a user