Scala简介及基础语法

一、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:\temp\目录下
    3)配置环境变量
    SCALA_HOME=E:\temp\scala-2.11.8
    PATH中加入%SCALA_HOME%\bin;

四、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)

原文地址:https://www.cnblogs.com/areyouready/p/10202412.html

时间: 2024-09-29 21:52:26

Scala简介及基础语法的相关文章

Markdown 简介及基础语法

一.Markdown 简介 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 二.Markdown 基础语法 1. Markdown 中文版语法说明 2. Markdown 语法手册(参考 wintnessai1 整理) 三.Markdown 编辑工具 1. MaHua 在线 Markdown 编辑器 2. 作业部落 3. Sublime Text2/3 (个人推荐) 4. MarkdownPad(View 及时预览) 正所谓:

[JavaWeb基础] 028.CSS简介和基础语法

css 概述 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题 外部样式表可以极大提高工作效率 外部样式表通常存储在 CSS 文件中 多个样式定义可层叠为一 css 的优先顺序 浏览器缺省设置 外部样式表 内部样式表(位于 <head> 标签内部) 内联样式(在 HTML 元素内部) css 的基础语法 代码结构 颜色的写法   p { color

scala学习01-scala基础语法

Scala基础 变量声明和使用 val a = 10 var b = 20 函数使用 def hello(a:Int,b:Int):Int{ if(a > b) a else b } while循环 var i = 0; while(i <10){ print(i) i += 1 } for循环 //函数式语言的主要特征就是:函数是头等结构 val a = List(1,2,3) a.foreach(b => println(b))//括号中传入的是函数字面量 //for循环的例子 fo

css系列教程--简介及基础语法和注意事项

css简介:css指的是层叠样式表,cascading style sheets.用来定义html中的dom节点如何展示在页面中的问题.解决了内容与表现形式的分离问题.常见的样式表有外部链接样式表和内部样式表,简称,外链和内联. css基础表现形式:cssname{porerty:value} div{width:100px;} 注:样式表的声明是可以覆盖的,分为以下几种情况:1.外部样式表重新定义.在外部样式表中,定义了两次同样的名称,不同的样式属性的css,默认会以最后一次定义的为准或者最后

Swift-001-Swift简介及基础语法

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Yuanti SC"; color: #000000; background-color: #ffffff } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 14.0px "Yuanti SC"; color: #000000 } span.s1 { } 1.Swift简介

Spark入门到精通--(第二节)Scala编程详解基础语法

Scala是什么? Scala是以实现scaleable language为初衷设计出来的一门语言.官方中,称它是object-oriented language和functional language的混合式语言. Scala可以和java程序无缝拼接,因为scala文件编译后也是成为.class文件,并且在JVM上运行. Spark是由Scala进行开发的. Scala安装? 这里就讲一下Scala在Centos上进行安装的过程,和安装JDK差不多. 官网下载Scala:http://www

Scala基础语法 (一)

如果你之前是一名 Java 程序员,并了解 Java 语言的基础知识,那么你能很快学会 Scala 的基础语法. Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的. 我们可以认为 Scala 程序是对象的集合,通过调用彼此的方法来实现消息传递.接下来我们来理解下,类,对象,方法,实例变量的概念: 对象 - 对象有属性和行为.例如:一只狗的状属性有:颜色,名字,行为有:叫.跑.吃等.对象是一个类的实例. 类 - 类是对象的抽象,而对象是类的具体实例. 方法 - 方法

Razor基础语法简介

原文:Razor基础语法简介 Razor的出现,使页面看起更加简洁,Razor的页面后缀为:.cshtmlRazor基础语法:1.代码注释:      多行注释: @*注释信息*@     单行注释: // 注释 1.代码体{...} @{ var x=100; var y=100; string str="this is string": } 在代码体中,没一行都需要用";"结束,代码区中,字母区分大小写.字符类型常量必须用""括起来,2. 由

Scala学习笔记一之基础语法,条件控制,循环控制,函数,数组,集合

前言:Scala的安装教程:http://www.cnblogs.com/biehongli/p/8065679.html 1:Scala之基础语法学习笔记: 1:声明val变量:可以使用val来声明变量,用来存放表达式的计算结果,但是常量声明后是无法改变它的值的,建议使用val来声明常量: 声明var变量:如果要声明可以改变的引用,可以使用var变量,声明的常量的值可以改变. 3:指定类型:无论声明val变量还是声明var变量.都可以手动指定其类型,如果不指定,scala会自动根据值,进行类型