scala
2022-09-06 20:53:28 0 举报
AI智能生成
Scala基础
作者其他创作
大纲/内容
方法和函数的区别
函数可以作为一个参数传入方法中,而方法就不行
函数必须要有参数列表,而方法可以没有参数列表、
闭包
闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量
闭包通常来讲可以简单地认为是可以访问一个函数里面局部变量的另一个函数
分支主题
字符串
在Scala中,字符串的类型实际上是Java String,它本身没有string类
在Scala中,string是一个不可变的对象,所以该对象不可被修改,这意味着如果修改字符串就会产生一个新的字符串对象
在Scala中,可以使用String Builder类创建一个可以修改的字符串
分支主题
数组
Scala语言中提供的数组是用来存储固定大小的同类型元素,数组对于每一门编辑应语言来说都是重要的数据结构之一。
创建数组的两种方式
分支主题
数组遍历的两种方式
分支主题
类和对象
构造器
每个类都有一个主要的构造器,这个构造器不是单独声明的构造函数,而是和类定义交织在一起的
当阅读一个Scala类时,需要将它们分开理解,一个是类的定义,一个是构造函数的定义。
除了主构造器外,类还可以有任意多的辅助构造器(this)
每一个辅助构造器都必须以一个对先前已经定义的其他辅助构造器或主构造器的调用开始
属性
类的所有属性都被默认私有化,但是会生成getter和setter方法
如果属性用private修饰,生成getter和setter方法也是私有的
类的属性如果用val修饰,默认拥有getter方法
可以使用@BooleanBeanProperty注解增加Java方式的getter和setter
嵌套类
在Scala中,几乎可以在任何语法结构中内嵌任何语法结构。可以在函数中定义函数,在类中定义类
在Scala中,每个实例都有他自己的Member类,就和他们们有自己的members字段一样
要构建一个新的内部对象,只需要简单的new这个类名(new chatter.Member)
伴生类和伴生对像
当一个对象与一个类共享一个名称时,它被称为半生对象,并且该类也被称为半生类
用class修饰的为伴生类,用object修饰的为伴生对象,为的就是解决Scala中没有static关键字的问题
伴生类与伴生对象可相互访问各自私有成员
伴生对象可为伴生类增加静态成员
object由来
在 Scala 中,是没有 static 这个东西的,但是它也为我们提供了单例模式的实现方法,那就是使用关键字 object。
Scala 中使用单例模式时,除了定义的类之外,还要定义一个同名的 object 对象,它和类的区别是,object对象不能带参数。
当单例对象与某个类共享同一个名称时,他被称作是这个类的伴生对象:companion object
在同一个源文件里定义类和它的伴生对象。类被称为是这个单例对象的伴生类:companion class
类和它的伴生对象可以互相访问其私有成员
scala是一门多范式的编程语言,设计初衷是实现可伸缩的语言,并具有面向对象编程和函数式编程的特征
六大特性
高阶函数
类型推测
混编
模式匹配
特质特性
高并发和分布式(Actor)
应用场景
Scala可以简化代码
Kafka分布式消息队列,内部代码用来处理并发问题
Spark方便处理多线程
标识符
区分大小写
Scala是大小写敏感的
类名
所有类名第一个字母大写
使用几个单词构成一个类的名称,每个单词第一个字母大写
程序文件名
程序文件名称与对象名称完全匹配
保存文件时,应该保存它使用的对象名称,并追加Scala为文件扩展名
数据类型
Scala的数据类型都是对象,Scala没有Java中的原生类型,在Scala是可以对数学等基础类型调用方法的
变量和常量
注意
定义变量或者常量的时候,也可以也上返回的类型,一般省略,如:val a:Int = 10
变量
在程序运行期间值可以发生改变的量叫做变量
常量
在程序运行期间值不会发生改变的量叫做常量
在Scala中声明变量和常量不一定要指明数据类型,在没有指明数据类型的情况下,其数据类型是通过变量或常量的初始值推断出来的
如果在没有指明实际类型的情况下声明常量或变量必须要给出其初始值,否则会报错
运算符
算术运算符
分支主题
关系运算符
分支主题
逻辑运算符
分支主题
位运算符
分支主题
赋值运算符
分支主题
方法与函数
Scala有方法与函数,二者在语义上区别很小。Scala方法是类的一部分,而函数是一个对象可以赋值给一个变量
在类中定义的函数即是方法。Scala中的方法跟Java的类似,方法是组成类的一部分。Scala中的函数则是一个完整的对象,Scala中的函数其实就是继承了Trait的类的对象。
收藏
收藏
0 条评论
下一页