scala学习-基本数据类型和简单操作5

1基本数据类型
只要是java的基本数据类型,Scala都支持。不过Scala中的数据类型都是对象,这些基本类型都可以通过隐式自动转化的形式支持更多的方法。隐式自动转换的概念简单的就是,为基本类型提供扩展,比如(引路蜂例子),调用(-1).abs(),-1是Int型,基本类型Int步支持abs方法的,那么Scala就会把-1转化成RichInt类型,然后调用RichInt类型的abs方法。
基本数据类型有:
Byte,Short,Int,Long,char,Double,Float,String.
除了String在java.long包保重,其他都在scala中,比如scala.Int。
在scala运行时,自动加载scala和java的数据类型,可以随便使用。
以前也说过,由于scala支持类型推断,不用显示的指明数据类型,可以通过scala运行自动给出变量的类型。

//Byte,不要问问为什么byte不自动推断,我不知道哈
  val p1:Byte=5
  //Int
  val p2 = 5
  //float
  val p3=5.11
  //char
  val p4='A'
  //String
  val p5="string"

还有要注意一点是,不是变量也可以调用方法,以前我们说过Scala把任何东西都看成对象。一般的数字或着值都可以调用方法。

 (-5).abs
 println((-5).abs)

这点和java不同。
2操作数据类型
Scala提供了很多运算符来操作基本数据类型,这些运算符,其实是方法的简化,比如1+2,实际上为(1).+(2),也就是1调用Int类型的名叫+的方法。Scala就是这么任性。还提示我们

  println(1+2)
  println((1).+(2))

这里写图片描述
实际上Int类型重载了很多方法,支持不同类型的方法。
在比如,String的方法indexof,可以使用方法的形式使用,也可以使用运算发的方式使用。

 println("String".indexOf("t"))
  println("String" indexOf "t")

结果是一毛一样的,第二个indexOf 其实就是当作运算符来使用的。所以说运算符其实就是一个方法的简化。
刚才说的+,是中缀运算发,就是+两步都是值的,也有前缀运算发和后缀运算符。-6中的-就是前缀运算符,后缀就是我们刚刚说的 indexOf。Scala在实现前缀和后缀操作符的时候,方法的名称都是以unary_开头的。

println(-5)
println((5).unary_-)

这里写图片描述
在Scala中你调用方法时可以省略空格号,如果你想调用该方法的没有参数的方法时。比如下面:

 println( "afa".toLowerCase)
println( "afa" toLowerCase)

前缀操作符有:+,-,!和~
算法运算符:+-*/
关系:<,>,=,!等
如果需求比较两个对象是否相等,可以使用==和!=操作符,这点和java中的==不同,scala中,只能比较两个对象值是否相同。对于类型的比较使用eq和ne。
scala操作符优先级和java一样,如果 困惑时,请使用()来改变优先级。scala中的操作符一般是左结合,但是以:结尾时,就是右结合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫二哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值