大数据学习之Scala语言基本语法学习36

2020-12-13 01:42

阅读:500

标签:解压   表达式   简写   ack   配置环境变量   div   val   问题   ide   

一:scala简介

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

Scala语言很强大,集成了面向对象和函数式编程的特点。

运行在JVMjdk)。

大数据中为什么学习scala?

sparkscala语言编写。

pythonspark 挺好的

javaspark 很糟糕(代码实在是太多了)

scalaspark 很完美

二:scala特点

1)优雅

框架设计中第一个要考虑的问题就是API是否优雅。

精简的封装。

代码精简(少)。

2)速度快

scala语言表达能力强。

一行代码=多行java代码,开发速度快。

3)完美融合hadoop生态

scala是静态编译,表达能力强并且代码量少。

三:安装Scala

1)下载

2)解压

3)配置环境变量(我是win10系统的,简单的安装,没有弄什么SACLA_HOME那些花里胡哨的东西。直接添加Scala

bin目录到Path中就行了)

技术图片

技术图片

 

 

SCALA_HOME=

path

四:Scala基础语法

1Scala程序的开始(编译器用的是Idea。安装一个Scala的插件就可以用了)

Helloworld

技术图片

2)Scala的数据类型

Scalajava一样,有8中数值类型:

Byte/Char/Short/Int/Long/Float/Double/Boolean/

Unit类型(void)

注意:scala中无包装类型。

Unit:表示无值,用于不返回任何结果的方法的结果类型。

3Scala定义变量

两个关键字:val var

val:定义变量值不可变

var:定义的变量值是可变的

scala编译器会自动的推断类型!

指定类型: val str:String = "dawn"

注意:类型要保持一致

Unit = ()()相当于什么都没有用()表示。

 技术图片

4)条件表达式

if:判断(和java差不多)

val y = if(x>0) 1 else 2

 技术图片

 

Any:包含AnyvalAnyRef

Anyval:包含scala所有类型

AnyRefScala classesJava Classes

Any相当于javaObject

 

val k = if(x=1) 1 else -1

ifelse if:多个条件的判断,符合条件看左侧,不符合条件看右侧

 技术图片

5)块表达式

scala{}包含一系列表达式,块中的最后一个表达式的值就是块的值

6)循环

 

Scala拥有与JavaC++相同的whiledo循环

Scala中,可以使用forforeach进行迭代

 

使用for循环案例:

技术图片

注意:

* 表示

Scala中的generator,即:提取符

*)第三种写法是第二种写法的简写

 

for循环中,还可以使用yield关键字来产生一个新的集合

技术图片

在上面的案例中,我们将list集合中的每个元素转换成了大写,并且使用yield关键字生成了一个新的集合。

 

使用while循环:注意使用小括号,不是中括号

技术图片

使用do ... while循环

技术图片

使用foreach进行迭代

技术图片

注意:在上面的例子中,foreach接收了另一个函数(println)作为值

 源码:

package dawn.day01
/**
  * @author Dawn
  * 2019年6月11日17:01:23
  * @version 1.0
  * scala基本语法基础
  */
object Demo1 {
  def main(args: Array[String]): Unit = {

    //定义一个集合
    var list =List("dawn","Anlis","xiaomei")

    var i=0
    println("**********************第一种循环for **********************************")
    for(s 

  

7)方法定义

Scala+ - * / % 的作用和Java一样,但是特别的是,这些操作符实际上是方

法。个人觉得scala中所有定义的变量都是对象

1 to 10

1.to(10)

技术图片

定义一个方法:

def m1(a:Int,b:Int):Int = {

a + b

}

def:定义方法的关键字

m1:方法名

a:参数列表

b:参数列表

Int:返回值类型

a + b:函数体

技术图片

 

大数据学习之Scala语言基本语法学习36

标签:解压   表达式   简写   ack   配置环境变量   div   val   问题   ide   

原文地址:https://www.cnblogs.com/hidamowang/p/11006322.html


评论


亲,登录后才可以留言!