Scala变量和数据类型

  • Post author:
  • Post category:其他




Scala变量和数据类型


前言:


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

Scala数据类型分成两类,数值类型(AnyVal)和引用类型(AayRef)

Scala数据类型依旧遵守低精度向高精度转化规则


整形分类


在这里插入图片描述


整数类型中低精度可以直接隐式转化成高精度,高精度转换成低精度必须强转。另外char可以直接隐式转化成int。


空类型分类


在这里插入图片描述


1、变量和常量



var定义的数据为变量

var name="小白说Java"
//或者
var name:String="小白说Java"
//或者给默认值
var name:String=_


val定义的数据为常量,等同于java中被final修饰,不可更改,必须赋值

val name="小白说Java"
//或者
val name:String="小白说Java"


2、控制台标准输入输出



输入

//读一个字符串
var name:String=StdIn.readLine()
//读一个浮点数
var age:Float=StdIn.readLine()


字符串输出

//可以和Java一样通过+连接
print(name+"今年"+age+"岁了")
//使用printf,通过%传值
printf(%s今年%d岁了,name,age)
//字符串模板(插值字符串),print(s""),通过${}获取变量值
print(s"${name}今年${age}岁了")
//格式化模板字符串,printf(f""),可以将age格式化再传进去
println(f"${name}今年${age}%5.3f岁了") //整个数长度不超过6的话前面补空格(小数点也包含进长度中),超过2则无所谓。且保留三个小数


文本文件读取与输出

//将每个字符都输出
Source.fromFile("datas/1.txt").foreach(print)
//将数据写入到指定文件下,如果已存在,则会内容覆盖
var writer =new PrintWriter(new File("datas/1.txt"))
writer.write(99999+"小白说")
writer.close()


空类型理解



Unit (返回一个空值)

    def test():Unit={
      print("test方法被执行")
    }
    //接收test的返回值
    var value:Unit=test()
    //输出返回值
    print(a)


结果:


在这里插入图片描述


Null(返回一个空引用)

//ERROR用法  引用类型才能赋值为null
var num:Int=null//这是错的
//引用类型才能用null
var student:Student=null


Nothing(一般用于没有正常返回值的返回,用于抛异常退出)

    def test(n:Int):Nothing={
      throw new NullPointerException
    }
//如果要经过判断是否返回正常值
//由于Nothing是所有类的子类,即也是Int类的子类,所以Int类型下也可以直接返回抛出异常,即没有任何返回值
    def test(n:Int):Int={
      if(n==0)
      return 5
      else
      throw new NullPointerException
    }    


取数值对应的精度

//int隐式转化成Float
    var x:Float=3
    //输出x保留两位小数
    println(x.formatted("%.2f"))
    //输出x保留2位小数,且如果总长度不超过5(包含小数点),前面补上空格
    println(x.formatted("%5.2f"))



版权声明:本文为weixin_45264992原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。