scala简介及基础语法(代码片段)

areyouready areyouready     2023-02-16     683

关键词:

一、scala简介
    官网:https://www.scala-lang.org/
    Scala语言很强大,集成了面向对象和函数式编程的特点。
    运行在JVM(jdk)。
    大数据中为什么学习scala?
    spark是scala语言编写。
    python写spark 挺好的
    java写spark 很糟糕(代码实在是太多了)
    scala写spark 很完美
    
二、scala特点
    1)优雅
    框架设计中第一个要考虑的问题就是API是否优雅。
    精简的封装。
    代码精简(少)。
    2)速度快
    scala语言表达能力强。
    一行代码=多行java代码,开发速度快。
    3)完美融合hadoop生态
    scala是静态编译,表达能力强并且代码量少。

三、安装Scala
    1)下载scala-2.11.8.zip
    2)解压到E:	emp目录下
    3)配置环境变量
    SCALA_HOME=E:	empscala-2.11.8
    PATH中加入%SCALA_HOME%in;

四、Scala基础语法
    1)Scala程序的开始HelloWorld
    object HelloWorld 
        def main(args: Array[String]): Unit = 
            println("Hello, world!")
        
    
    
    2)Scala的数据类型
    Scala与java一样,有8种数值类型:
    Byte/Char/Short/Int/Long/Float/Double/Boolean/
    和Unit类型(void)
    注意:scala中无包装类型。
    Unit:表示无值,用于不返回任何结果的方法的结果类型。
    
    3)Scala定义变量
    两个关键字:val var
    val:定义变量值不可变
    var:定义的变量值是可变的
    scala编译器会自动的推断类型!
    指定类型: val str:String = "Hello World"
    注意:类型要保持一致
    Unit = ():()相当于什么都没有用()表示。
    
    4)条件表达式
    if:判断
    val y = if(x>0) 1 else 2
    
    scala> val z = if(x>0) "error" else 1
    z: Any = error
    
    Any:包含Anyval和AnyRef
    Anyval:包含scala所有类型
    AnyRef:Scala classes与Java Classes
    Any相当于java的Object
    val k = if(x<0) 0 else if(x>=1) 1 else -1
    if和else if:多个条件的判断,符合条件看左侧,不符合条件看右侧
    
    5)块表达式
    在scala中包含一系列表达式,块中的最后一个表达式的值就是块的值
    例如:
    def main(args: Array[String]): Unit = 
        //块表达式
        val a = 1

        val rs = 
            if(a > 2)
                1
            else if (a < 2)
                -1
            else
                0
            
        
        println(rs)
    
    
    6)循环
    yield:生成一个新的集合关键字
    1.to(10).map(_*1000)
    map:取出元素
    _:代表元祖

循环的一些例子:

//1、循环得到1到10
scala> 1 to 10
res7: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

//2、循环换行输出1到10
scala> for(i <- res7) println(i)
1
2
3
4
5
6
7
8
9
10

//3、循环不换行输出1到10
scala> for (i <- res7) print(i)
12345678910

//4、定义变量接收循环得到的数字1到10
scala> val rs = 1 to 10
rs: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

//5、循环换行输出1到10
scala> for(x <- rs) println(x)
1
2
3
4
5
6
7
8
9
10

//6、定义一个数组
scala> val arr = Array(1,3,5)
arr: Array[Int] = Array(1, 3, 5)

//7、循环换行输出数组的值
scala> for (i <- arr) println(i)
1
3
5

//8、按要求循环换行输出值
scala> for(i <- 1 to 10;j <- 1 to 5 if i != j) print((10*i+j) + " ")
12 13 14 15 21 23 24 25 31 32 34 35 41 42 43 45 51 52 53 54 61 62 63 64 65 71 72 73 74 75 81 82 83 84 85 91 92 93 94 95 101 102 103 104 105

//9、使用yield生成一个新的集合
scala> for(i <- 1 to 10) yield i*10
res14: scala.collection.immutable.IndexedSeq[Int] = Vector(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)

//10、使用to方法得到1到10
scala> 1.to(10)
res15: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

//11、使用to方法和map方法得到预期的结果
scala> 1.to(10).map(_*1000)
res16: scala.collection.immutable.IndexedSeq[Int] = Vector(1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000)

//12、使用yield生成一个新的集合
scala> val a1 = for(i <- 1 to 10;if(i%2 == 0)) yield i
a1: scala.collection.immutable.IndexedSeq[Int] = Vector(2, 4, 6, 8, 10)

 

scala基础语法(代码片段)

Scala基础1、声明变量packagecn.gec.scalaobjectVariableDemo defmain(args:Array[String])   //使用val定义的变量值是不可变的,相当于java里用final修饰的变量   vali=1   //使用var定义的变量是可变得, 查看详情

大数据之python入门语法基础

一、python特点及简介\\python在编程语言中的排名4位简洁优雅同scala语言完成同样一个任务c语言1000行java100行scala/python20行面向过程及面向对象的语言同scala语言wordcountMapReduce基于spark使用scala进行wordcountsc.textFile(“hdfs://nn:8020/data/inp... 查看详情

scala基础语法之trait详解(代码片段)

▼Scala系列学习笔记:Scala概述与开发环境配置Scala基础学习之运算符Scala基础学习之for循环和while循环一文掌握scala中的方法和函数Scala基础:类和对象、访问修饰符和构造器Scala的继承和抽象类本章节目标能够使用trait独... 查看详情

scala基础语法(代码片段)

目录1.java语法类比Scala基本语法需要注意以下几点:2声明变量2.1语法格式2.2在解释器中定义一个变量2.3val和var变量2.4使用类型推断来定义变量2.5惰性赋值3字符串3.1使用双引号3.2使用插值表达式3.3使用三引号4数据类型与操作... 查看详情

scala基础语法学习(代码片段)

目录一、变量 二、数据类型三、scala中的条件表达式四、循环五、while循环六、方法6、函数7、数组(1)、定长数组(2)、变长数组(3)、遍历数组(4)、数组常用操作8、元组 9、映射Map(1&... 查看详情

大数据学习06scala的基础语法(代码片段)

大数据学习06Scala的基础语法介绍Scala的基础语法文章目录大数据学习06Scala的基础语法前言一、注释二、变量与常量1.基本语法2.代码实操三、标识符的命名规范1.命名规范2.字符串输出3.调试效果四、控制台标准输入1.代码实现2.调... 查看详情

react简介及jsx语法(代码片段)

文章目录React简介React概述及特点React渲染机制React基本使用JSX语法React简介React概述及特点是一个用于构建用户界面,将数据渲染为HTML视图的开源JavaScript库中文官网:React官方中文文档是Facebook开发并于2013年发布并宣布开... 查看详情

markdown简介及基础语法

一、Markdown简介Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。 二、Markdown基础语法1.Markdown中文版语法说明2.Markdown语法手册(参考wintnessai1整理) ... 查看详情

spark基础学习笔记08:scala简介与安装(代码片段)

文章目录零、本讲学习目标一、Scala简介(一)Scala概述(二)函数式编程(三)Scala特性1、一切都是对象2、一切都是函数3、一切都是表达式(四)在线运行Scala二、Windows上安装Scala(一)... 查看详情

scala基础(十三):scala模式匹配(代码片段)

1 match应用案例Scala的模式匹配案例代码完整:packagecom.atguigu.baseobjectMatchDemodefmain(args:Array[String]):Unit=//模式匹配,类似于Java的switch语法varresult=0valc=‘-‘cmatchcase‘-‘=>result=1println("匹配到-")case‘+‘=&g 查看详情

scala学习之一scala基础语法(代码片段)

环境  虚拟机:VMware10  Linux版本:CentOS-6.5-x86_64  客户端:Xshell4  FTP:Xftp4  jdk1.8  scala-2.10.4(依赖jdk1.8) spark-1.6Scala是一种混合功能编程语言,类似java,运行于JVM,集成面向对象编程和函数式编程的各种特性。(1)Scala... 查看详情

scala基础&函数(代码片段)

基础的scala语法和函数packagecom.yjm.scalaobjectPersondefmain(args:Array[String]):Unit=varage=20if(age>20)println("可以观看欧美")elseif(age>18)println("可以看国产")elseprintln("禁止观看")varcount=1while(count& 查看详情

jsp简介和基础语法(代码片段)

目录1.JSP简介JSP技术是基于JavaServlet和整个Java体系的Web服务器端开发技术JSP是JavaServerPages的缩写,表示它是用Java写的Web服务页面程序JSP网页是在传统的HTML文件中加入JSP标记或Java程序片段构成,JSP页面文件以“jsp”为扩展... 查看详情

必备前端基础知识-第三节1:javascript简介和基础语法(代码片段)

文章目录一:JavaScript简介(1)JavaScript概述(2)JavaScript特点(3)JavaScript运行过程(4)JavaScript组成(5)JavaScript的引入方式和基本使用(6)Jav 查看详情

scala基础语法介绍(代码片段)

1.变量的定义注意:在scala中没有static的概念,在object这个关键字修饰的类中所有的方法和属性都是static的。这里的object类叫做伴生类,目前不涉及。例:objectTest01defmain(args:Array[String]):Unit=//使用val定义的变量是不可变的,相当于... 查看详情

python爬虫零基础教程:简介及准备

其他的教程往往从语法开始,而我们直接开始爬虫,语法等知识边做边学。这第0篇我们简单介绍下爬虫和编程工具。其他的教程往往从语法开始,而我们直接开始爬虫,语法等知识边做边学。这第0篇我们简单介绍下爬虫和编程... 查看详情

mysql之简介及基础操作(代码片段)

MySQL简介常用命令启停MySQL连接MySQL停止MySQL库操作database创建数据库显示数据库显示全部数据库显示部分数据库显示数据库创建语句选择数据库修改数据库删除数据库表操作table创建数据表普通创建表复制已有表结构显示数据表显... 查看详情

pyspark数据分析基础:pyspark基础功能及dataframe操作基础语法详解(代码片段)

目录前言一、PySpark基础功能 1.SparkSQL和DataFrame2.PandasAPIonSpark3.Streaming4.MLBase/MLlib5.SparkCore二、PySpark依赖Dependencies三、DataFrame1.创建创建不输入schema格式的DataFrame创建带有schema的DataFrame从PandasDataFrame创建通过由元组列表组成 查看详情