scala的基础语法之变量

1、类介绍

我们在new scala类的时候,这里分为Class和Object两大类(idea2019.1版本,其他新版本应该是四种,case Class和case Object,不过没关系,这里想要使用case的直接在前面写case即可)。

def是define,是对方法的修饰或者叫定义,Unit代表没有返回值。

这里语句后面不需要写;显得简洁。

2、变量

2.1 数据类型

主要分为两个大的数据类型,AnyVal(value  值数据类型)和AnyRef(reference 引用数据类型),这和java中的数据类别一致。而Any是所有数据类型的父类,类似Java中的object。

值得注意的是,AnyVal下的数据类型都是大体上和Java中的八大数据类型一样,但,scala中他们都是大写字母开头,Unit相当于Java中的void,是无返回值的意思。

AnyRef下的Null和java中的null类似,是所有引用类型的子类。

Nothing是所有类型的子类,通常异常时使用。

2.2变量的定义

格式:var | val 变量名 [:数据类型] =变量值

var:是variable修饰变量的

val:是value修饰不可变量,相当于java中final修饰的变量

[ ]中的变量类型是可以省略的,scala编译器可以对数据类型进行推断

注意:

(1)我们一般在修饰变量时,优先用val,以后需要改变值时,再修改为var。

(2)val是线程安全的,使用效率高。

 

在scala中,对于val age:Int = 23来说,age是一个Int数值类型的变量 , 而数值类型的变量也属于一个对象 , 所以age变量就是一个对象,也拥有很多方法,这一点和java完全不同。

2.3数据类型转换

val age="12"
//变量名.isInstanceOf[数据类型]   判断变量是否是该数据类型
println(age.isInstanceOf[String])
//字符串的拼接,发现String和Int运算自动将Int转为了String,类似Java中的类型转换
val str: String = age+10

//数据类型中提供了toxxx
val i: Int = age.toInt+10
println(i)

//强制类型转换asInstanceOf
val res: Int = age.asInstanceOf[Int]

数值类型之间的转换用toxxx。例如这里的string转int

引用数据类型之间的转换用asInstanceOf来强制类型转换(必须有继承关系)。

总体而言,scala的数据类型转换和java基本一致,高精度的类型转换成低精度(强制类型转换)一样可能出现精度丢失的问题。

2.4运算符

和Java中的一致,这里不多介绍

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值