一、Scala基础

本文介绍了Scala编程的基础知识,包括如何使用命令行操作Scala解释器,声明值和变量的方式,以及常用的基本类型。文章还讨论了操作符重载,如算术运算和范围操作,并指出Scala中没有++/--操作。另外,详细阐述了方法调用的规则,特别是无参方法的使用,以及伴生对象的概念。最后提到了apply方法在字符串操作中的应用,并提醒读者注意()与隐式参数可能产生的冲突。
摘要由CSDN通过智能技术生成

本系列文章只记录本人在学习过程中不会的或者不熟悉的内容

1.Scala解释器

命令行的操作方式

2.声明值和变量

多个值或者变量放在一起声明:

val xmax,ymax  = 100	//将xmax和ymax均设为100
val greeting,message : String = null	//将两个字符串初始化为null

3.常用类型

Byte,Char,Int,Long,Short,Float,Double,Boolean

这8个的类型均是类,Scala不刻意区分数据类型和引用类型,例如:

1.toString()	//得到的是字符串“1”
1.to(10)	//将交出Range(1,2,3,4,5,6,7,8,9,10)

Scala中不需要包装类型,在基本类型和包装类型之间的转换是Scala编译器的工作。

4.算术和操作符重载

①±*/%等操作符实际上都是方法,例如:a + b 实际上是 a.+(b)
在BigInt类中定义了一个名为/%的方法,该方法返回一个对偶,而对偶的内容是除法操作得到的商和余数。

通常来说可以用a 方法 b 来作为 a.方法(b) 的简写,该方式是一个带有两个参数的方法(一个隐式的和一个显示的),例如a.to(10)可以用a to 10 代替

② Scala中没有++ --操作,但可以使用+=1和-=1

5.关于方法的调用

① 如果方法没有参数,你可以不写()。例如:Boniour.sorted,给字符串中的字母排序。
如果一个无参方法并不能修改对象,调用时就不用写括号。
②引入包后,调用包中的方法不需要带前缀

import scala.math._		//_是通配符,类似于java中的*
sqrt(2)
pow(2,4)
min(3,Pi)

若不引入scala.math包,就要带前缀scala.math.sqrt(2)

③ 通常,类都有一个伴生对象(comapion object),其方法就跟java中的静态方法一样。
例:scala.math.BigInt类的BigInt伴生对象有一个生成指定位数的随机质数的方法probablePrimeBigInt.propablePrime(100,scal.util.Random)这里的Random是定义在一个scala.util包里的单例随机数生成器对象

6.apply方法

val s = "hello
s(4)	//交出'o'

这种情况下可以把()理解成操作符的重载,但背后的实现原理是一个名为array的方法。
查看StringOps类的文档中,有这样一个方法:def apply(n : Int) : Char所以s(4)s.apply(4)的简写。
注意:()偶尔会和另一个Scala特性——隐式参数相冲突。例如前面举例,无参的方法是可以省略()的。例:"hello".sorted(4)是一种错误的写法,此时应该写成("hello".sorted)(4)

7.Scaladoc

Scaladoc中有比Java类丰富得多的便捷方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值