2、Scala变量和数据类型

二、变量和常量

常量:在程序执行过程中,其值不会被改变的变量

0)Java中,变量和常量的语法:

变量类型 变量名称 = 初始值                      int a = 10

final 变量类型 常量名称 = 初始值           final int b = 20

1)基本语法

var 变量名 [:变量类型] = 初始值    var i:Int = 10

val 常量名 [: 常量类型] = 初始值   val j:Int = 20

注意:能用常量的地方不用变量

注:1.声明变量时,类型可以省略,编译器自动推导

         2.类型确定后,就不能更改,说明scala是强数据类型语言

         3.变量声明时,必须有初始值

         4.在声明定义一个变量时,可以使用var或者val来修饰,var修饰的变量可改变,val修饰的变量不可变

2)标识符的命名规范

        Scala对各种变量、方法、函数等命名时使用的字符序列称为标识符。

        ①命名规则:a.以字母或者下划线开头,后接字母、数字、下划线;b.以操作符开头,且只包含操作符(+-*/#!等);c:用反引号'....'包括的任意字符串,即使是Scala关键字(39个)也可以

        ②字符串输出

        基本语法:字符串,通过+号连接;printf:字符串,通过%,与C语言相仿

3)Scala数据类型

        ①Scala中一切数据都是对象,都是Any的子类

        ②Scala中数据类型分为两大类:数值类型(AnyVal),引用类型(AnyRef),不管是数值类型还是引用类型都是对象

        ③Scala数据类型仍然遵守,低精度的值类型向高精度值类型,自动转换(隐式转换)

        ④Scala中的StringOps是对Java中String增强

        ⑤Unit:对应Java中的void,用于方法返回值的位置,表示方法没有返回值。Unit是一个数据类型,只有一个对象就是0,Void不是数据类型,只是一个关键字

        ⑥Null是一个类型,只有一个对象就是null。它是所有引用类型(AnyRef)的子类

        ⑦Nothing:Nothing类型在Scala的类层级最低端,他是任何类型的子类型。当一个函数,我们确定没有 正常的返回值,可以用Nothing来指定返回类型,这样一个好处可以把返回值(异常)赋给其他的函数或者变量(兼容性)

4)类型转换

        ①将数据由高精度转换为低精度,需要强制类型转换,val n : Int = -2.9.toInt

        ②强转符号只针对于最近的操作数有效,往往使用小括号提升优先级

        ③数值类型和String类型的转换,val s : String = n + "";

            String转数值,val m : Int = "12.3".toFloat

你可能感兴趣的:(2、Scala变量和数据类型)