Scala语法讲解及练习

版权声明:个人原创,转载请标注! https://blog.csdn.net/Z_Date/article/details/84258987

 Scala基础语法

1、 值和变量

A)声明变量:

var修饰的字段,是变量,内容和引用都可变

B)声明:

val修饰的字段,是常量,内容可变引用不可变

val修饰的字段,相当于Javafinal修饰的变量

注意:在val和var均可的条件下,官方推荐使用val

  1. varvar区别演示

进入scala操作界面

演示var修饰的变量特点:

var修饰字段引用可变

 

总结:var修饰字段内容可变

演示val修饰的常量特点:

val修饰字段引用不可变

Val修饰字段内容可变

1、lazy关键字:

只有val修饰的变量才能被lazy修饰;

val被声明为lazy时,它的初始化将被推迟,直到我们首次对它取值  

2. 常用类型

A)Scala和Java一样,scala也是强类型语言

强类型语言一旦一个变量被指定了某个数据类型,如果不经过强制类型转换,那么它就永远是这个数据类型。你不能把一个整形变量当成一个字符串来处理。

弱类型语言:数据类型可以被忽略,一个变量可以赋不同数据类型的值。

  1. scala中所有的值都有类型

​​​​​​​

ScalaAnyVal类型(非引用数据类型)

七个数值类型Byte、Char、Short、Int、Long、Float、Double

一个布尔类型Boolean

一个Unit类型(等价与java中的void

ScalaAnyRef类型(引用数据类型)

   集合、option(选项类型)、YorClass(自己定义的类)

Scala中比较特殊的两个类型:NothingNull(很少用到,要知道):

a、Nothing是所有类的子类(应用场景如下):

b、null是所有引用类的子类(应用场景如下):

注意:scala和Java不同的是,Scala没有基本类型与包装类型之分,这些类型都是类,有自己的属性和方法。

  1. scala 类型转换:

a、自动类型转换

案例1:将Long转Float类型

   val x: Long = 987654321

   val y: Float = x  // 9.8765434E8 (note that some precision is lost in this case)

   案例2:将Char转Int类型

   val face: Char = '☺'

   val number: Int = face  // 9786

 b、强制类型转换

  案例1:将Long类型强制转换成Byte

   var b:Long=a

   b.toByte

  案例2:将Long类型强制转换成String

3. 操作符

A)Scala中没有操作符,只是以操作符的格式去进行方法调用。

//数学运算符

+-* /%

//关系操作符

> < >= <= !=

//逻辑操作符

&& ||

//比较对象是否相等

==   =

注意:

1a + b 等价于 a.+(b) 因为符号也是scala中的方法

2Scala没有++,-- 可以用+=,-=代替

3操作符都是方法的重载,.是方法的调用

B)、扩展:位运算符 (二进制:0:false 1:true

1如果指定 A = 60; 及 B = -13; 两个变量对应的二进制为:

A = 0011 1100      <<2  1111 0000

B = 0000 1101      >>2  0000 0011

2、运算符、描述、实例

&   按位与运算符       (a & b) 输出结果 12 ,二进制解释: 0000 1100

|     按位或运算符       (a | b) 输出结果 61 ,二进制解释: 0011 1101

^    按位异或运算符    (a ^ b) 输出结果 49 ,二进制解释: 0011 0001

    (参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0)

~    按位取反运算符    (~a ) 输出结果 -61 ,二进制解释: 1100 0011 在一个有符号二进制数的补码形式。

<<  左移动运算符       a << 2 输出结果 240 ,二进制解释: 1111 0000

(将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0))

>>  右移动运算符     a >> 2 输出结果 15 ,二进制解释: 0000 1111

(将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃)

>>>  无符号右移      A >>>2 输出结果 15, 二进制解释: 0000 1111

(将一个数的各二进制位全部右移若干位,左补0,右边丢弃)

3、验证结果使用win10计算器

 

 

猜你喜欢

转载自blog.csdn.net/Z_Date/article/details/84258987