Scala变量和数据类型

一、注释及代码规范

  1. Scala的注释和Java中完全相同:单行注释:// 、多行注释:/* */ 以及文档注释:/**   */;
  2. 使用tab操作,实现缩进,默认整体向右边移动,用shift+tab整体向左移 。或是ctrl + alt + L来进行格式化;
  3. 运算符两边习惯性各加一个空格;
  4. 一行最长不超过80个字符,超过的请使用换行展示,尽量保持格式优雅 ;
  5. Scala与Java的命名规范基本一致,Scala还允许纯操作符的命名形式(操作符(+ - * / # !等),如:var +*-/#! : String = ""。以及反引号包含39个关键字的形式,如:var `if` : String = ""。

二、变量和常量

Java中

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

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

Scala中

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

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

  1、声明变量类型可以省略,编译器会自动推导;

  2、Scala中类型确定后就不能改变了,Scala是强类型语言;

  3、变量声明时必须要有初始值;

  4、var修饰的对象引用可以改变,val则不可以改变,但对象的状态可以改变(比如;自定义对象、数组、集合等)

object VarTest {
  def main(args: Array[String]): Unit = {
    //var 修饰的对象属性可变,p1对象本身也可变
    var p1 = new Person();
    p1.name ="zhangsan"
    p1 = null

    //val 修饰的对象不可变,但属性可变
    val p2 = new Person()
    p2.name = "lisi"
    //p2=null      程序错误
  }
}
class Person{
  var name:String = "";
}

三、字符串操作

1、字符串拼接与java相同,使用“+”连接;

2、println的输出中,通过“%”进行传值;

3、在字符串模板中,通过${}获取变量值。

4、在多行字符串中,应用Scala中的stripMargin方法,使用三个双引号包围以.stripMargin结尾,中间换行使用“|”。

示例代码:

object CharTypeTest {
  def main(args: Array[String]): Unit = {
    var name : String = "zhangsan"
    var age : Int = 18

    //字符串拼接
    println("name=" + name +","+"age" + age)
    println("name=%s,age=%d",name,age)

    //多行字符串输出
    val s =
      """
        |I
        |love
        |China
        |""".stripMargin
        println(s)
    //通过$传值
    val s1 =
      s"""
        |select *
        |from person
        |where name="$name" and age=${age+2}
        |""".stripMargin
        println(s1)
  }
}

四、键盘输入

java中:

  Scanner input = new Scanner(System.in);
        System.out.println("输入姓名:");
        String name = input.next();
        System.out.println("输入年龄:");
        int age = input.nextInt();

Scala中:

object InputTest {
  def main(args: Array[String]): Unit = {
    println("输入姓名:")
    var name:String = StdIn.readLine()
    println("输入年龄:")
    var age:Int = StdIn.readInt()
  }
}

五、数据类型

Java中:

基本类型:byte、short、int、long、float、double、char、boolean;

引用类型:对象类型。

Scala中:

  1. Scala中一切数据都是对象,都是Any的子类;
  2. 数据类型分为两大类,数值类型(AnyVal)、引用类型(AnyRef);
  3. Scala依旧遵守低精度类型向高精度类型自动转换(隐式);
  4. Scala中的StringOps是对Java中String的增强;
  5. Scala中的Unit无返回类型等价于Java中的void,但void只是关键字,而Unit依旧是数据类型且包含一个对象();
  6. Null也是一个类型,只包含一个对象null;
  7. Noting是一切数据类型的子类,主要用于一个函数没有明确返回值时使用。
  8. Scala中的整数类型有:Byte、Short、Int、Long;
  9. 浮点类型:Float、Double;
  10. 字符型:Char;(单个字符使用单引号'');
  11. 布尔型:Boolean;

六、类型转换

6.1 隐式转换

当Scala程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数值类型,这个就是自动类型转换(隐式转换)。数据类型按精度(容量)大小排序为:

 

 6.2 强制转换

Java:

double a = 2.2;
int b = (int) a;

Scala:

 def main(args: Array[String]): Unit = {
//注意:toInt只针对最近的操作数有效,所以往往要配合小括号使用
var a:Int = 2.7.toInt }

String类型转基本类型:s1.toInt、s1.toFloat、s1.toDouble、s1.toByte、s1.toLong、s1.toShort。

posted @ 2022-02-11 15:30  干了这瓶老干妈  阅读(61)  评论(0编辑  收藏  举报
Live2D