标签:
Chapter1
1、Scala解释器
启动Scala解释器的方法如下:
自己总结的:
1.打开执行命令栏WIN+R ,输入cmd,在命令行上输入Scala等待启动如下
如上面所示即可启动Scala
2.使用bin内部的启动脚本
找到你所安装Scala的目录,并在Scala的bin文件夹中找到scala.bat文件,打开即可。
以上是我知道的打开方式,另外,可以使用eclipseEE进行安装插件,进行使用,具体的使用情况可以参考上一篇文章。
下面来测试一下Scala编译器的效果吧
测试成功,说明可以进行接下来的Scala的学习了。
下面来学习声明值和变量。
在以上的测试中,我们可以发现计算中出现res0、res1等变量的出现,在Scala中不仅可以使用这些名称,还可以自己声明。如:
val answer = 8*5+8
结果为:answer:int = 48
其中使用 val 定义的值实际上是一个常量----------无法改变其值
如果声明可变的的变量用 var :
var counter = 0
counter = 1
在Scala中鼓励使用val,对于java和C++的同志似乎很惊讶,我也是如此。
声明值或变量必须进行初始化。负责会报错。
注意的是:在Scala中的声明值和变量时的格式:
如:val greeting : Any: ="Hello“
val Scala :String="world"
另外在变量声明和赋值语句之后,我们都没有使用分号。在Scala中只有一行中有多条语句才需要分号。
常用类型:
Scala有7中常用类型:Byte、Char、Short、Int、Long、Float、Double以及Boolean类型
跟Java不同的是Scala这些类型都是类。Scala不刻意去区分类型和应用类型。可以对数字执行方法如:
1.toString()//结果仍为1 类型为:String
1.to(10)产出Range(1,2,3,4,5,6,7,8,9,10)
定义变量
Scala有两种变量,val和var。val类似于Java里的final变量。一旦初始化了,val就不能再赋值了。与之对应的,var如同Java里面的非final变量。var可以在它生命周期中被多次赋值。
1
2
3
|
val
msg 1 = ”hello
scala” var
msg 2 = ”hello
world” |
仔细看上面定义的2个变量好像都没有类型声明,这是怎么回事呢?这就要说到Scala的类型推断(type inference),因为你用了一个字符串来初始化msg变量,Scala推断msg的类型是String。你也可以显式地定义类型,有些时候也应该这么做。显式的类型标注不但可以确保Scala编译器推断你倾向的类型,还有助于以后代码的阅读。
1
|
val
msg :
String = ”hello
scala” 与Java不同的是类型声明在变量后面,用一个” : ”分隔。 |
4.定义函数
上面已经定义了变量,现在开始学习怎么定义一个函数
1
2
3
4
5
6
|
def
max(x :
Int, y :
Int) :
Int =
{ //定义函数
if
(x > y) x else
y } max( 3 , 7 )
//调用函数 |
自己对照看与 java函数有什么不同,函数体只有一句的大括号可以省略写成 :
1
|
def
max(x :
Int, y :
Int) =
if
(x > y) x else
y |
结果类型也去掉了,编译器类型推断可得出,尽管如此带上结果类型也是一个好习惯,便于其他人阅读代码。
Scala的Unit结果类型指的是函数没有返回有用的值。Scala的Unit类型比较接近Java的void类型,而且实际上Java里每一个返回void的方法都被映射为Scala里返回Unit的方法。因此结果类型为Unit的方法,仅仅是为了它们的副作用而运行
注:java里的i++和++i在scala里是行不通的。
Scala强大的类型系统让我们可以使用更具有表现力的表达式。一些主要的特点如下:
val
i: Int = 12: Int
99.44.toInt得到99
99.toChar()得到‘c’
toString是将任意的对象转换成字符串。
算数和操作符重载:
Scala的
算数和操作符重载运行效果和JavaC++中预期的效果是一样的。
版权声明:欢迎转载,希望在你转载的同时,添加原文地址,谢谢配合
标签:
原文地址:http://blog.csdn.net/u011225629/article/details/46956579