大数据知识:快学Scala(一)Scala基础

Scala概述

什么是Scala

          Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序


Scala语言的特点

        1.优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验。

        2.速度快:Scala语言表达能力强,一行代码抵得上Java多行,开发速度快;Scala是静态编译的,所以和JRuby,Groovy比起来速度会快很多。

       3.能融合到Hadoop生态圈:Hadoop现在是大数据事实标准,Spark并不是要取代Hadoop,而是要完善Hadoop生态。JVM语言大部分可能会想到Java,但Java做出来的API太丑,或者想实现一个优雅的API太费劲。


Scala编译器安装

安装JDK

    因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK

在Windows平台下安装Scala

        访问Scala官网http://www.scala-lang.org/下载Scala编译器安装包,目前最新版本是2.12.x,但是目前大多数的框架都是用2.10.x编写开发的,所以这里推荐2.10.x版本,下载scala-2.10.6.msi后点击下一步就可以了

在Linux平台安装Scala

        下载Scala地址http://downloads.typesafe.com/scala/2.10.6/scala-2.10.6.tgz然后解压Scala到指定目录

            tar -zxvf scala-2.10.6.tgz -C /usr/java

        配置环境变量,将scala加入到PATH中

            vi /etc/profile

       export JAVA_HOME=/usr/java/jdk1.7.0_45  

       export PATH=$PATH:$JAVA_HOME/bin:/usr/java/scala-2.10.6/bin

Scala工具包安装

     目前Scala的开发工具主要有两种:Eclipse和IDEA,这两个开发工具都有相应的Scala插件,如果使用Eclipse,直接到Scala官网下载即可http://scala-ide.org/download/sdk.html。

     由于IDEA的Scala插件更优秀,大多数Scala程序员都选择IDEA,可以到http://www.jetbrains.com/idea/download/下载社区免费版,点击下一步安装即可,安装时如果有网络可以选择在线安装Scala插件。这里我们使用离线安装Scala插件:

     1.安装IDEA,点击下一步即可。由于我们离线安装插件,所以点击Skip All and Set Defaul

     2.下载IEDA的scala插件,地址http://plugins.jetbrains.com/?idea_ce


       

      3.安装Scala插件Configure -> Plugins -> Install plugin from disk -> 选择Scala插件-> OK -> 重启IDEA





Scala基础

声明变量

package cn.edu.hust.scala

object BaseDemo {
      def main(args: Array[String]){
        //定义一个变量这个变量相当于final
          val x=1
          println(x)
          //这次定义的变量可以改变
          var y=10
          y=y+10
          println(y)
          println("hello scala")


          //可以在声明时候指定变量类型,指定的类型放在变量之后
          val s:String="name"
          println(s)
      }

}

常用的基本类型

        Scala和Java一样,有7种数值类型Byte、Char、Short、Int、Long、Float和Double(无包装类型)和一个Boolean类型。

条件表达式

package cn.edu.hust.scala

object IFDemo {
  def main(args: Array[String]): Unit = {
    //在scala中都是对象,可以进行一般逻辑或者运算操作
    val x:Int=10
    val y=if(x>2) 4 else -1
    println(y)

    println(x+y)
    //这些运算是重载的方法
    println(x.+(y))

    //还可以使用if直接赋值,如果没有else,这里直接返回()
    val z=if(y>100) 1
    println(z)

    //还可以使用esleif,也可以使用混合编程
    val t=if(x<0) -1 else if(x<100) "error" else 100
    println(t)
  }
}

块表达式

object BlockExpressionDemo {
  def main(args: Array[String]) {
    val x = 0
    //在scala中{}中课包含一系列表达式,块中最后一个表达式的值就是块的值
    //下面就是一个块表达式
    val result = {
      if (x < 0){
        -1
      } else if(x >= 1) {
        1
      } else {
        "error"
      }
    }
    //result的值就是块表达式的结果
    println(result)
  }
}

循环

package cn.edu.hust.scala

object ForDemo {
  def main(args: Array[String]) {
    //使用循环,会自动生成一个与1to 10想类似的数据结构
    val z = for (i <- 1 to 10) yield i
    println(z)

    //可以操作每一个值使用yield
    val x = for (i <- 1 to 10) yield i * 10
    println(x)


    //可以在for循环中使用判断
    val y = for (i <- 1 to 10; if (i % 2 == 0)) yield i
    println(y)
    //使用循环
    val t = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
    val arr = for (i <- t) yield i + 2
    println(arr.length)

    //取出array使用小括号,使用until来进行取下标值
    for (i <- 0 until t.length ) println(i+":"+arr(i))

  }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、Scala核心编程课程简介近年来随着大数据的兴起,大数据核心框架Spark和Kafka也受到到广泛关注, Spark底层是Scala实现的, 因此也带火了Scala语言,目前Scala被全球知名公司(如:谷歌、百度、阿里、Twitter、京东等)广泛用于Spark开发。新一代的物联网时代到来,会对大数据应用人才的需求越加紧迫。 尚硅谷网罗和整合了员很喜爱的师资,打造出专注于Spark开发的Scala课程,我们讲解Scala核心编程技术,同时也讲解编程思想、设计模式和Scala底层实现,让您有豁然开朗的感受。二、课程内容和目标本课程重点讲解Scala核心编程,内容包括: Scala语言概述、运算符、程序流程控制、数据结构之集合、Map映射、过滤、化简、折叠、扫描、拉链、视图、并行集合、高阶函数、函数柯里化、偏函数、参数推断、控制抽象、Trait、面向对象编程、异常处理、惰性函数、Akka及Actor模型、Spark Master和Worker通讯、隐式转换、隐式参数、工厂模式、单例模式、观察者模式、装饰者模式、代理模式、泛型、上下界、视图界定、上下文界定、协变逆变不变和源码剖析。通过系统全面的习,员能掌握Scala编程思想和Scala底层机制,为进一步习Spark打下坚实基础。三、谁适合1.希望以较低的投入和风险,来了解自己是否适合转型从事Spark开发的求职人员。2.有一定的Java基础,或者自过一些Java书籍与视频资料,想系统掌握Scala语言的程序员。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值