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 版权协议,转载请附上原文出处链接和本声明。