Scala学习笔记-基础

云计算 waitig 445℃ 百度已收录 0评论

1.声明值和变量、

1)可以自己定义变量名称,以val 定义的值实际上是一个常量,你无法改变他的内容
例如:
val answer=8*5+2
answer=0   (错误)
如果要声明其值可变的变量,可以用var:
例如:
val answer=8*5+2
answer=0   (正确)
scala中鼓励使用val

2)2.scala中,在变量声明或赋值语句之后,并不需要分号。仅当同一行代码中存在多条语句时才需要用分号隔开
val xmax,ymax=100  //将xmax和ymax设为100
var greeting.message:String=null  //greeting和message都是字符串,被初始化为null

2.常用类型

Scala常用数值类型有7种:Byte、Char、Short、Int、Long、Float、Double和Boolean类型。和Java不同的是,这些类型是类,Scala并不刻意区分基本类型和引用类型

Scala还提供了RichInt、RichDouble、RichChar等,分别为Int、Double、Char等提供不具备的编辑方式

例如:

1.to(10)   //Int值1首先被转换成RichInt,然后再应用to方法

BigInt和BigDecimal类,用于任意大小(有穷)的数字

3.算术和操作符重载

scala的算术操作符和Java或者c++中预期的效果是一样的

+-*/%等操作符完成的是它们通常的工作,位操作符&|^>><<也一样。只是有一点特别的:这些操作符实际上是方法。

例如: a+b  是a.+(b)方法调用的简写,+是方法名

和Java或c++相比,scala有一个显著不同,scala并没有提供++和–操作符,我们需要使用+=1或者-=1

在Java中一般不允许对操作符进行重载,但是scala允许拟定于操作符

4. 调用函数和方法

Scala中没有静态方法,不过他有个类似的特性,叫做单例对象。

一个类对应有一个伴生对象,其方法就跟Java中的静态方法一样。例如BigInt类的BigInt伴生对象有一个生成指定位数的随机素数的方法probalePrime:

BigInt.probalePrime(100.scala.util.Random)

这里BigInt.probalePrime的调用和Java中的静态方法调用相似

  不带参数的scala方法通常不使用圆括号。例如distinct方法: “hello“.distinct

5.apply方法

在scala中,通常都会使用类似函数调用的语法。例如s字符串,s(i)表示该字符串的第i个字符,可以把这种用法当做是()操作符的重载形式,背后的实现原理是一个名为apply的方法。例如,StringOps类的文档中,有方法:

def apply(n:Int):Char

"Hello"(4)是“Hello”.apply(4)的简写


本文由【waitig】发表在等英博客
本文固定链接:Scala学习笔记-基础
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)