Scala根本语法初探
Scala基本语法初探
学习Spark不得不学习Scala这门神奇的语言,这次就匆匆忙忙做下总结吧。
Scala是一种基于JVM的语言,是函数是编程和面向对象编程的结合,是一个静态语言,纯静态语言。因为会生成和java相同的class字节码所以它与Java之间可以互相调用。
Scala有一个解释器。
1.定义常量的方法,在这里常量的方法是不能够改变的
val gender="male"
2.定义变量的方法
var lession="chinaHadoop"
3.定义函数的方法,函数的最后一个值被默认为返回值
main函数要定义在object里面
def hello(name:String="Spark"):String={
"Hello :"+name;
}
我们可以这样调用
println(hello("one")) 打印:Hello :one
我们也可以使用它的默认参数,也就是我们在不传参的情况下这里会默认给你分配一个参数、
println(hello()) 打印:Hello :Spark
我们可以定义这样定义一个函数:
val add=(x:Int,y:Int)=>x+y
它是匿名函数,因为函数在Scala里面是一等公民,那么一个函数赋值给一个常量add也是见怪不怪的事情
那么他可以这样调用
add(1,2)
那么我们也可以这样来定义一个函数
def add2(x:Int)(y:Int)=x+y
它是函数的克里化,克里化在以后再说那么我们可以这样调用它
val value = add2(3)(4)
哈,好神奇的语言
4.有没有尝试过在函数的()里面条用过函数???
哈Scala让我见识到了
def printEveryChar(c:String*)={
c.foreach(x=>println(x))
}
其中参数(c:String*)是表示可以传入一系列的String类型的参数
那么我们可以这样调用
printEveryChar("one","two","three","four")
打印结果
one
two
three
four
if条件判断
val x=1
val a=if(x>0)1 else 0
那么a的值就是1,可见判断语句变得非常简洁
循环
1.while循环
var (n,r)=(10,0) while(n>0){ r=r+n n=n-1 println(r) } println(r)
for循环
for(i<- 1 to 10){ println(i) } for(i<- 1.to(10)){ println(i) } /////以上打印1到10,一下打印1到9 for(j<- 1 until 10 ){ println(j) } 另外 for(i<- e1){ for(j<- e2){ ifB{ E(i,j) } } } 可以简化为 for(i<- e1;j<- e2;if B) E(i,j)
Scala之match
匹配match表达式
a match{
case e1=>E1
case e2=>E2
...
}
例如:
val tmp = 4 match { case 1 => "one" case 2 => "two" case 3 => "three" case 4 => "four" } println(tmp)
则输出为four