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)
}
?
原文:http://come-for-dream.iteye.com/blog/2156011