变量和常量(java 、scala)

数据类型对比

在申明变量之前,首先我们要了解清数据类型,因为变量的申明和数据类型的指定是离不开的。

java scala
byte Byte
short Short
int Int
long Long
float Float
double Double
char Char
boolean Boolean
String String

从中可以看出,java和scala的数据类型可以说是完全对应,区别只是在于书写的时候,java是小写(String例外),scala首字母大写。
注:其实scala在指定数据类型时,也不一定非要是首字母大写,小写也可以,这应该是便于java程序员学习scala的便利,但官方还是建议使用首字母大写

变量定义

java
在java中,对于每一个变量,都需要指定变量类型,所以在定义变量时,通常是:
变量类型 变量名

int test1;//定义整形
float test2;//定义浮点型变量
double test3;//定义一个双精度浮点型变量

以上就是java中定义一个变量的格式,但是此时还只是定义了一个变量,并未初始化,如果此时使用这个变量,比如

System.out.println(test1);

那将会报错,因为变量在使用前,变量必须初始化。只有初始化后才可以正常的使用变量。

test1 = 10;
System.out.println(test1);

或者在定义变量的时候就初始化变量

int test1 = 10;
System.out.println(test1);

总之变量在使用之前是需要初始化的。

示例程序:

public class DataType {
    
    
    public static void main(String[] args) {
    
    
        int test1 = 10;
        System.out.println(test1);
    }
}

scala

scala的变量定义格式如下:
var 变量名:变量类型 = 初始值
scala和java不一样,scala的变量必须用var修饰符修饰,同时变量名在变量类型前面,中间用冒号隔开。
在java中变量定义和初始化是可以分开的,但是scala不同,在定义变量的同时,就需要对其进行初始化赋值,不能够分开。

    var test1:Int = 12

示例程序:

object DataType1 {
    
    
  def main(args: Array[String]): Unit = {
    
    
    var test1:Int = 12
    println(test1)
  }
}

但是scala是聪明的,它比java要聪明,因为它可以自动推断数据类型,变量可以根据初始值的类型自动推断出变量的数据类型,故而并不需要指定数据类型,所以上面的Int是不必要的。从这里也可以猜测出为什么在scala中变量的定义和初始化是不能分开的,因为便于推断,这是scala设计的思路。

var test1 = 12

变量test1是可以通过初始值12来推断出来的,因为12是整型,所以test1自然被推断出整形。
示例程序:

object DataType1 {
    
    
  def main(args: Array[String]): Unit = {
    
    
    var test1= 12
    println(test1)
  }
}

以上也是scala推崇的,极简主义。

常量定义

java
前面讲了如何在java中定义一个变量,那么定义一个常量就很简单,只需要在定义变量的最前面加一个final关键字。

final int test1 = 10;
System.out.println(test1);

示例程序:

public class DataType {
    
    
    public static void main(String[] args) {
    
    
        final int test1 = 10;
        System.out.println(test1);
    }
}

scala
scala中定义变量用var,定义常量则用val。

val test1 = 12

示例程序:

object DataType1 {
    
    
  def main(args: Array[String]): Unit = {
    
    
    val test1 = 12
    println(test1)
  }

}

总结

1.java中变量定义格式:变量类型 变量名(int test1)
2.java变量使用前必须初始化(test1 = 10或者int test1 = 10)
3.java常量定义只需要在前面加一个final(final int test1 = 10)
4.scala变量定义格式:var 变量名:=初始值(var test1 = 10)
5.scala常量定义格式:val 常量名:=初始值(val test1 = 10)

最后做一个额外的补充:
java中每一句后面需要用分号结尾
scala中不需要用分号结尾

Guess you like

Origin blog.csdn.net/weixin_41885239/article/details/120629721