Scala基本语法初探

来源:互联网 发布:淘宝推广培训学校 编辑:程序博客网 时间:2024/05/22 15:16

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到9for(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

 

0 0
原创粉丝点击