Scala 基础知识

1 简介

Scala 和 Java一样都是面向对象编程的语言,在有一定Java基础上学习Scala是比较简单的。下面对我近期学习的Scala基础知识参考官方文档做一个整理。

2 基础知识

2.1 Scala 安装环境

参照官网的认识,开发Scala有多种方式,一种是交互式编程,另一种是脚本编程。因为习惯,我是通过脚本进行编程的。开发的工具的 ideal,需要准备的环境是 jdk 和 Scala。详细配置jdk和Scala的教程可以网上搜索。注意别忘记设置环境变量了。

2.2 Scala 的第一个程序

学习编程的小伙伴都知道最重要的一个程序:helloworld. 接下来和大家展示一下这个程序:
在这里插入图片描述
先不要研究为啥这么写。目前看懂就行,里面有一个main 方法,Unit 和Java中的void差不多,代表无返回值。

2.3 Scala 数据类型

先复习一下Java的基本数据类型:byte , short , int , long , float , double , string , boolean
scala 的数据类型也包含这几项,但是首字母是大写的,且也包含其他几项: Byte , Short , Int , Long , Float , Double , String , Boolean , Unit , Null , Nothing , Any , AnyRef。Java的就不在介绍了,介绍一下另外一个:

  • Unit: 代表 无值 ,类似与 Java中的 void
  • Null :代表null 或者空引用
  • Nothing: 是其他任何类型的子类
  • Any : 是其他任何类型的超类
  • AnyRef : 所有引用类的超类

2.4 Scala 变量和访问修饰符

Scala 中的变量 分为 常量和 变量。常量使用 val 修饰,变量使用 var 修饰。如下所示
在这里插入图片描述
Scala 中的访问修饰符和 Java 一样有四种:private, protected, default,public,但是 除了public之外,另外三种的访问修饰符 都要比 Java中严格的多。具体信息参考官方文档

2.5 if else 和 循环语句

参照Java的学习,if else 用于判断条件的结果是否成立,根据判断的结果执行不同的语句。可以但是使用if , 也可以使用 if else ,或者 if , else if ,else if 使用:具体案例 如下所示:
在这里插入图片描述
Scala的循环语句也有三种: for 循环,while循环,do while 循环。具体案例如下所示(案例里面设计到了方法的定义,先明白作用就好):
在这里插入图片描述

2.6 方法 和 函数 及闭包的概念

通过这一段时间的学习,我感觉方法和函数的区别就是 :方法是属于 类的一个成员,而函数更偏向于一个对象。至于闭包,和函数的区别不大。
学习Scala的方法,类比与学习Java中的方法。在Scala中,定义方法通过 def 定义。定义函数 通过 var 定义。闭包可以说就是函数。所以也通过 var 进行定义。方法展现形式如下:
在这里插入图片描述
函数及闭包定义如下:
在这里插入图片描述
从代码中可以看出来,函数和闭包的区别是,闭包的成员变量需要依赖与外部的数据。

2.7 数据和集合

Scala中的数据用于存储 相同类型的一组数据,长度固定。集合也可以用来存储一组数据,但是长度可以固定,也可以不固定。
可通过如下的方法创建数组(简单案例):
在这里插入图片描述
可通过如下方法创建集合:
在这里插入图片描述

2.8 Scala 模式匹配和正则

模式匹配的关键字为 match ,和Java中 switch 很相似。如下所示:输出的值为 is ten
在这里插入图片描述
至于正则表达式可以用来 替换字符或者 抽取匹配到的字符串。如下所示:
在这里插入图片描述
代码中的 .r 方法是 Scala中字符串提供的一种生成Regex 对象的方法

2.9 异常处理和 I/O

Scala中异常处理和Java中非常类似。通过 throws 进行抛出:
在这里插入图片描述
这里抛出异常方式的方式利用了模块匹配的思想。需要注意的是,无论是否发生异常,finally 里面的内容都会被执行。
至于 Scala中的异常处理,主要是发生在文件的读写上面。具体案例如下所示:
在这里插入图片描述
在如图所示的测试代码中,会在当前路径检测 test.text文件,如果没有检测到这个文件,会自动创建这个文件,然后将 内容写道里面去。在这里多说两句,在处理 文件 IO 流的时候,比较恶心的问题就是有时候 搞不懂读写的 具体顺寻。我总结的一个方法就是,将内存中的数据当作中心,从内存中读出来既是将内容写到本地地盘中此时用到的 文件流是 writer ,如果获取内容到内存中,则是 读 ,既是 reader.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值