关于Scala的知识点(一)

Scala的概念:

Scala是一个面向对象和面向函数式的多范式编程语言,基于JVM,运行于Java虚拟机,兼容现有Java程序。

在Scala编程中,“每个值都是对象,每个符号都是方法操作”。

在面向函数中,函数是一个对象。他跟字符串、数值具有同等地位,也就是说函数可以赋值给一个变量,可以作为方法的参数,可以作为方法的返回值。函数操作在程序中是一个输入到输出的映射关系。输入参数不可变是函数式编程的基石。

"函数式编程"是一种"编程范式"(programming paradigm)。它属于"结构化编程"的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。

Scala的优点:

1.优雅:Scala语言设计非常贴合程序开发思维方式,并且能够很轻松的实现复杂的功能。这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验。

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

3.能融合到Hadoop生态圈: Scala是目前大数据处理框架Spark以及消息中间件Kafka的基础开发语言,能够很容易融入大数据生态圈。Hadoop现在是大数据事实标准,Spark并不是要取代Hadoop,而是要完善Hadoop生态。JVM语言大部分可能会想到Java,但Java做出来的API太丑,或者想实现一个优雅的API太费劲。

4.语言表达能力强:Scala的语法结构非常简单,但是其表达能力很强。比如循环遍历集合操作,Java至少需要4行 ,Scala基本上1行代码就可以搞定,能够节省大量的开发成本,并且释放了我们的键盘。

5.Scala是基于JVM的编程语言,并且是静态类型。能够跟Java语法相互兼容,且具有可移植的特性。

Scala声明变量:

val:不可变变量,一旦声明在其生命周期中不可变,相当于java中的final修饰的变量。

var: 可变变量,可变指的是变量的值可变,变量的数据类型不可变。

注:声明变量时,类型可以省略,类型确定后就不能修改。Scala编译器会自动推断变量的类型,必要的时候可以指定类型。

Scala常用数据类型:

1.整数类型:Byte 、Short、Char、Int、Long

2.浮点类型:Float、Double

3.布尔类型:Boolean

4.字符串类型:String

注意:

1.整型的省略数据类型后,默认的都是Int类型

2.浮点的省略数据类型后,默认的都是Double类型

Scala运算符:

1.算数运算符 : + - * / %

2.比较运算符:> < >= <=

3.逻辑运算符:&& || !

4.位运算符:>> <<等

Scala表达式:

1.条件表达式:if表达式可以有多种不同类型的返回值,在Scala中无返回值的情况值缺省返回 “()”

2.块表达式:使用花括号括起来一段具有返回值的程序,就是块表达式。其中块的最后一个表达式的值就是块的值。

3.for循环:该表达式会返回新的数据集合

Scala的方法定义:

1.方法的返回值是方法中最后一个表达式,并且返回值类型可以省略。

2.方法的参数默认修饰符也是val,并且不能使用修饰符修饰。

3.针对递归调用的方法一定不能省略返回值。

Scala中方法和函数的区别:

在函数式编程语言中,函数是“头等公民”,它可以像任何其他数据类型一样被传递和操作。函数是一个对象,继承自Fuction。

方法只能作为对象的成员存在。

Scala的数据结构:

1.数组 Array

2.列表 List

3.元组 Tuple

4.映射 Map

5.集合 Set

其中Array、List、Map、Set数据结构又分为了可变和不可变

以上是本篇随笔的内容,下一章将会讲述数据结构的详细信息和面向对象编程。

原文地址:https://www.cnblogs.com/cyan-sea/p/12386437.html

时间: 2024-11-05 14:56:45

关于Scala的知识点(一)的相关文章

Scala琐碎知识点

tuple scala中的tuple数据结构,是用来包含不同数据类型的容器,定义如下: 访问tuple中的元素,需要使用._n的语法,索引从1开始: scala中的tuple的长度最多为22,超过22报错: 上述定义scala中的tuple的方式是下面这种方式的缩写: scala中的cons(:: 和 :::  ) 首先要知道在Scala中Nil代表的是空的列表List cons定义: x :: xs 如下就是把一个Int类型添加到Int类型的List中 ::: 这个运算符在scala中表示的是

Scala

Scala 一.前言 大数据领域的Spark.Kafka.Summingbird等都是由Scala语言编写而成,相比Java而言,Scala更精炼.由于笔者从事大数据相关的工作,所以有必要好好学习Scala语言,之前也学习过,但是没有记录,所以就会忘记,感觉Scala确实比Java方便精炼很多,下面以Scala Cookbook英文版作为参考资料,从头到尾梳理Scala相关知识点,也加深印象.PS:这是在研究Zookeeper源码的间隙中交叉学习,不至于总是看源码太枯燥. 二.String 在S

【Scala】Scala之String

一.前言 大数据领域的Spark.Kafka.Summingbird等都是由Scala语言编写而成,相比Java而言,Scala更精炼.由于笔者从事大数据相关的工作,所以有必要好好学习Scala语言,之前也学习过,但是没有记录,所以就会忘记,感觉Scala确实比Java方便精炼很多,下面以Scala Cookbook英文版作为参考资料,从头到尾梳理Scala相关知识点,也加深印象.PS:这是在研究Zookeeper源码的间隙中交叉学习,不至于总是看源码太枯燥. 二.String 在Scala的R

Scala书籍推荐

现有的Scala书箱包括: Programming In Scala.Scala创建者Martin Ordersky等的大作,是最权威的Scala入门书箱,不过书中讲解的Scala版本有点老,这本书整体给我的感觉还可以,只是有些例子举得感觉不适合初学者.这部大作有中文版,但翻译得真实太烂,ZTMD烂. Scala In Action. 一般来讲,In Action系列的书都还可以,这本书整体也还不错,但对Scala 的内容覆盖面太小,很多重要内容里面没有涉及,个人感觉它不适合初学者,建议初学者不

2020.2.14

一.大数据spark 跟进scala的知识点学习. 视频号: av64039811 二.<一线架构师实践指南>阅读 阅读了第十六章 故事:困扰已久的非功能问题 原文地址:https://www.cnblogs.com/yeshenfeng/p/12309828.html

Scala知识点总结(上半部分)

深度解析Scala -----------语法精细篇 1.安装Scala: 1.将安装包解压 2.配置环境变量 E:\program\scala-2.11.8 系统变量中配置:变量名:SCAL_HOME 变量值:E:\program\scala-2.11.8 确定 编辑环境变量中:新建 ==>%SCALA_HOME%/bin===>确定 注意:如果在配置完了Scala,需要从新打开cmd.exe 2.配置IDEA 2.1点击Configure--->Plugins----->Ins

Scala知识点

1)将Array转化为String,toStrings()方法应该是序列化了的. scala> val args = Array("Hello", "world", "it's", "me") args: Array[java.lang.String] = Array(Hello, world, it's, me) scala> val string = args.mkString(" ") s

scala知识点(二)

1.正则表达式: 与正则表达式相关的类是scala.util.matching.Regex类,要构造一个Regex对象,使用String类的r方法即可,如果正则表达式中包含反斜杠或引号之类的需要转义的字符,那么最好是使用原始(raw)字符串,以三个”号包围 val apacheLogRegex = """^([\d.]+) (\S+) (\S+) \[([\w\d:/]+\s[+\-]\d{4})\] "(.+?)" (\d{3}) ([\d\-]+) &

scala的object知识点

1:object的中的代码,会在object对象被调用的时候执行且只会执行一次 object Demo{ println("gaoxing") def name = "nihao" } object Test extends App{ println(3) print(Demo.name) print(Demo.name) print(Demo.name) }