0
点赞
收藏
分享

微信扫一扫

大数据笔记--scala(第一篇)

晚安大世界 2022-03-24 阅读 60
scala

目录

一、Scala介绍 

1、概述

2、Scala语言的特点

二、Scala Windows运行环境配置及使用

1、安装步骤

2、两种模式

3、使用IDE来开发Scala

①、eclipse

②、IDEA

三、Scala基础语法一

1、基础

2、类型转换

3、scala运算符

4、基础语法

四、Scala基础语法二

1、for循环

2、for yield


一、Scala介绍 

官网:http://www.scala-lang.org

1、概述

Scala即是面向对象的语言,也是面向函数的语言。scala可以为你在做大量代码重用和扩展时提供优雅的层次结构,并可以通过高阶函数来实现这样的目标。(高阶函数是函数式编程里的特性之一,允许函数作为参数传递,也允许函数作为返回值来返回)

创始人:Martin Odersky马丁·奥德斯基,他在整个职业生涯中一直不断追求着一个目标:让写程序这样一个基础工作变得高效、简单、且令人愉悦。他编写了javac,这是目前大部分Java程序员所使用的编译器。他也编写了Scala编译器scalac。

2、Scala语言的特点

Scala并不适用于编程的初级课程,反而它是为专业程序员定制的强力语言。

1)它是一门现代编程语言,作者是Martin Odersky(javac之父),受到Java、Ruby、Smalltalk、ML、Haskell、Erlang等语言的影响。

2)它即是一门面向对象(OOP)语言,每个变量都是一个对象,每个“操作符”都是方法。scala语言在面向对象的方面,要比java更彻底。 

3)它同时也是一门函数式(FP)编程语言,可将函数作为参数传递。可以用OOP与FP结合编写代码。

4)Scala代码通过scalac编译成.class文件,然后在JVM上运行,可以无缝使用已有的丰富的Java类库。即Scala的代码会编译成字节码,运行在Java虚拟机(JVM)上。

5)接触语言的第一天你就能编出有趣的程序,但是这门语言很深奥,随着学习的深入,你会发现更新、更好的编写代码的方式。Scala会改变你对编程的看法。针对同一任务,可以有很多种不同的实现方式,并且可读性以及性能都有不一样的体现。

二、Scala Windows运行环境配置及使用

1、安装步骤

①、安装scala-2.11.7.msi,一直下一步就行

 

②、添加scala安装目录的bin目录的路径到系统的环境变量中

③、通过cmd命令窗口,输入scala

2、两种模式

交互模式:可以通过命令行直接输入scala命令,比如:

编译模式:也可以先编写  ***.scala文件,通过执行文件来执行命令,比如:

先在D盘下创建一个scala.scala文件

然后通过cmd运行:

3、使用IDE来开发Scala

我们可以使用eclipse或者IDEA来进行scala的开发:

①、eclipse

eclipse我推荐一款集成scala插件的版本

直接解压就可使用:

 打开后是这样的:

②、IDEA

idea我们可以安装scala的插件:

 

 然后重启新建项目:

 寻找本机安装的scala

 

选择scala的安装文件

 

 然后创建即可:

三、Scala基础语法一

1、基础

语句

说明

示例

var

用来声明一个变量,
变量声明后,在程序执行过程中可以被修改。

 

val

用来声明一个常量,
一旦被赋值就不能再进行修改

操作符

scala中操作符即方法,方法即操作符

所以 可以认为 scala中并没有传统意义上的操作符 所有的操作符都是方法 所有的方法也都可以像操作符一样去使用

算术运算符

+ - * / %

关系运算符

==  !=  >   <   >=  <=== > < >= <=

逻辑运算符

&&  ||  !

位运算符

~  &  |  ^  <<   >>   >>>

赋值运算符

=  +=  -=   *=   /=   %=

2、类型转换

scala的类型转换,形式固定:to指定类型。比如:toInt toString toLong  toArray toList

3、scala运算符

①、算术运算符

②、关系运算符

③、逻辑运算符

④、位运算符

⑤、赋值运算符

4、基础语法


object ScalaDemo02 {
  def main(args: Array[String]): Unit = {
    println(1+2*3)            //结果位7
    println(1.+(2).*(3))      //结果为9

    val num =8
    val result =if(num>5){
      println("big")          //打印big
      100
    }else{
      println("small")
      200
    }
    println(result)           //返回值为 100

    val result02=if(num>5) "big" else "small"
    println(result02)         //result02 为big

    if(num>5){
      println("big")      //结果打印big
    }else if(num==5){
      println("equal")
    }else{
      println("small")
    }

    val a1=Array(1,2,3,4)
    var index=0
    while(index<a1.length){
      println(a1(index))        //结果遍历数组,换行输出 1 2 3 4
      index+=1
    }
  }

}

四、Scala基础语法二

1、for循环

scala中的for要比java的for强大,使用很频繁,需要熟练掌握。

object ScalaDemo03 {
  def main(args: Array[String]): Unit = {
    //生成一个1~100的区间,区间类型是range
    val a1 = 1 to 100
    //循环遍历并打印
    for(i<-a1){
      println(i)
    }
    //支持条件过滤
    for(i<-a1;if i >50){
      println(i)
    }
    //支持多条件过滤
    for(i<-a1;if i>50;if i%2==0;if i<90){
      println(i)
    }
    //也可以写成下面的形式
    for(i<-1 to 100;if i>50&&i<90&&i%2==0){
      println(i)
    }
  }


}

九九乘法表:

// 方法一 
for (i<-1.to(9)){
    for(j<-1.to(i)){
      print(i+"*"+j+"="+i*j+"\t")
    }
    println()
  }
// 方法二,必须是常量(val)连接
for(i<-1.to(9);j<-1.to(i);val sep=if(i==j)"\r\n" else "\t"){
    print(i+"*"+j+"="+j*i+sep)

    print(s"$i*$j=${i*j}$sep") // 两种打印方法
}

2、for yield

for yield表达式:遍历一个集合,并将操作的数据返回到一个新的集合中
scala的集合是大的概念,常见的:Array,List,Set,Range,Iterator,Map
for yield 遍历的是什么集合类型,则返回对应类型的新集合。

    val arr = Array(1,2,3,4)
    val arr1=for(i<-arr)yield {i*2}
    for(i<-arr1)print(i)    // 2468

    val list = List(1,2,3,4)
    val list1=for(i<-list)yield {i*2}
    for(i<-list1)print(i)   // 2468

    val map = Map("tom"->23,"jary"->30,"yang"->24)
    //遍历map的k,v对
    for(i<-map)print(i)   //(tom,23)(jary,30)(yang,24)
    //通过二元元组形式来遍历map
    for((k,v)<-map)print(k) //tomjaryyang
举报

相关推荐

大数据笔记--Spark(第一篇)

Scala 第一篇 基础篇

第一篇博客

MyBatis篇---第一篇

第一篇练习

寒假第一篇

0 条评论