数组相关操作

This commit is contained in:
罗祥
2019-05-06 15:14:42 +08:00
parent 3a95e910c7
commit f749a51f5a
6 changed files with 270 additions and 15 deletions

View File

@ -3,20 +3,13 @@
<nav>
<a href="#一数据类型">一、数据类型</a><br/>
<a href="#二字面量">二、字面量</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#21-整数字面量">2.1 整数字面量</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#22-字符串字面量">2.2 字符串字面量</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#23-符号字面量">2.3 符号字面量</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#24-插值表达式">2.4 插值表达式</a><br/>
<a href="#三运算符">三、运算符</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#31-运算符即方法">3.1 运算符即方法</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#32-运算符优先级">3.2 运算符优先级</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="#33-逻辑运算符">3.3 逻辑运算符</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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。