scala学习小记1
scala简介:
scala基于JVM的FP+OO(函数编程和面向对象编程)
• 静态类型
• 和Java互操作
解释器(interpreter)
• 值与变量(val & var)
• 函数(Function)
scala安装:
1. 官网下载下载http://www.scala-lang.org/download/并解压
2. 把解压后的bin路径加到path里面去就可以了。
简单使用
1.
直接输入 1 + 3 ,返回res0: Int = 4
res0表示变量名, Int表示类型, 4是值。
Scala的类型定义在冒号后面,和java放在前面不同,和UML类图的属性定义方式一样。
Scala是强类型语言,必须要定义类型,但Scala编译器足够聪明,他能够根据你的值帮你定义变量的类型。
这里res0是个变量名,所以你可以接下来再使用。
Scala的所有变量都是对象,所有操作都是方法。
2.自己定义变量
前面的变量由Scala解释器自动定义了,这一步自己定义变量。
Scala有两种类型的变量,val 和var :
val 变量的值只能初始化一次,再次赋值就发生错误,
var就和java的变量相同,可以随时修改。
val msg = "Hello World!"
println(msg)
var greeting: String = "Hello World!"
println(greeting)
var (a,b)=(1,2)
3.定义一些方法
3.1 定义方法用def
def max(x: Int, y: Int): Int = if(x < y) y else x
这个max方法有方法参数,返回值类型,方法体。
调用方法 max(3,8)
Scala中方法也是一个类型,或者说是一个值,成为First Class,所以可以把max看成是个变量名,(Int,Int)Int是它的类型。他可以作为参数传递,也可以赋值给其他变量。val m = max _ ;将max赋值给m, 请注意max后面带的下划线,不要忘记写了;调用m m(1,3)
3.2 在scala中,函数是一等公民,甚至可以将函数赋值给一个常量
def add=(x:Int,y:Int) =>x+y
val b=(x:Int,y:Int) =>x-y
3.3 函数颗粒化
def mul (x:Int)(y:Int) =x%y
可以第一次只传过去1个参数,这样返回的是一个函数
3.4 接收一系列的,多个该类型的参数
def printEveryChar(s:String*)=
{
s.foreach(x=>println(x))
}
4.条件表达式(if)
val x=1
val y= if(x>0) 2 else 0
5.循环表达式(for, while)注意:scala中没有break 和continue
while示例:
var (a,b)=(10,0)
while(a>0)
{
b=b+a
a--
}
for示例:
for (i<- 1 to 10)//1-10
{
println(i)
}
-----------------
for (i<- 1 until 10)//1-9
{
println(i)
}
-----------------
for (i<- 1 to 10 if i %2 ==0)//2,4,6,8,10
{
println(i)
}