当前位置:首页 > 开发 > 编程语言 > Scala > 正文

Scala基本语法初探

发表于: 2014-11-14   作者:come_for_dream   来源:转载   浏览次数:
摘要: Scala基本语法初探        学习Spark不得不学习Scala这门神奇的语言,这次就匆匆忙忙做下总结吧。 Scala是一种基于JVM的语言,是函数是编程和面向对象编程的结合,是一个静态语言,纯静态语言。因为会生成和java相同的class字节码所以它与Java之间可以互相调用。Scala有一个解释器。1.定义常量的方法,在这里常量的方法是不能

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

 

Scala基本语法初探

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
用Java语言开发许久了,一直接触指令式的语言开发,同时也做的多了,也逐渐感觉到了静态语言的一些
0 下载地址: http://www.scala-lang.org/download/ 1 概念: 可伸缩的语言是一种多范式的编程语言,
Clojure首先是FP, 但是由于基于JVM, 所以不得已需要做出一些妥协, 包含一些OO的编程方式 Scala首先
一、PHP能做什么? PHP能做什么?我觉得它很强大,只要我能想到的,它都能做,只是我技术能力还不行
本文参考自《delphi2010语法手册》 1. 工程文件结构 源文件联系着unit单元,delphi主模块源文件格式
JNI的类型 1、基本数据类型 以下是java的基本数据类型和jni中的基本数据类型的比较,及各类型的字节
jQuery,一个 JavaScript 库,极大地简化了 JavaScript 编程,很容易学习。它是一款同prototype、No
本篇博客是对js的一个基本的了解,对于没有js基础的同学来说应该是个入门的基本吧 javascript 是原
一、操作符 1,算数操作符 **(幂) 求幂(**),结果不能超出数的范围。当指数为小数时,底数不能为负
一、 JSP页面组成 JSP常用语句有以下6种类型: 1)注释: <%--服务器端注释 --%> <!--HTML
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号