小坨的scala语言基础笔记

小坨的scala语言基础笔记

计算机的缘起

λ演算
在这里插入图片描述

图灵机

在这里插入图片描述

冯.诺依曼结构
在这里插入图片描述

编程范式

编程范式是指计算机编程的基本风格或典范模式。常见的编程范式主要包括命令式编程函数式编程。面向对象就属于命令式编程。

命令式编程是植根于冯.诺依曼体系的,一个命令式程序就是一个冯.诺依曼机的指令序列,给机器提供一条又一条的命令序列,让其原封不动地执行。

函数式编程它将计算机的计算视为数学上的函数计算,函数式编程的基础是λ演算。

命令式编程中变量可变,当涉及多线程之间的状态共享时,需要锁机制实现并发控制,但锁机制的存在也造成了并发计算时的资源浪费,所以说,命令式编程是不适合并发计算的。

函数式编程更适用于并发计算,也能充分利用多核CPU的并行处理能力。

参考视频:https://www.icourse163.org/learn/XMU-1205811805?tid=1206105206#/learn/content?type=detail&id=1210573310&cid=1212766610&replay=true

scala语言基础

scala简介

scala是一门类Java的多范式语言,它整合了面向对象编程和函数式编程的特性。

scala运行于Java虚拟机(JVM)之上,并且兼容现有的Java程序。

运行scala程序

在scala解释器交互式运行程序

在scala解释器中运行脚本文件,用 :load 命令导入脚本,一次运行多行程序

通过编译打包的方式运行scala程序
在这里插入图片描述

scala的基本数据类型
在这里插入图片描述

和Java不同的是,在scala中,这些类型都是类,并且都是包scala的成员,比如,Int的全名是scala.Int。对于字符串,scala用java.lang.String类来表示字符串。

操作符

在这里插入图片描述

操作符优先级:算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符

在scala中,操作符就是方法,比如5 + 3 和 (5).+(3)是等价的

a 方法 b 等价于 a.方法(b)

富包装类

对于基本数据类型,除了以上提到的各种操作符外,scala还提供了许多常用运算的方法,只是这些方法是被封装到一个对应的富包装类中,这些类位于包scala.runtime中。

当对一个基本数据类型的对象调用其富包装类提供的方法,scala会自动通过隐式转换将该对象转换为对应的富包装类型,然后再调用相应的方法。

变量

scala 定义了两种类型的变量val和var。

  • val为不可变变量,必须初始化,且不可以重新赋值。
  • var为可变变量,声明的时候需要进行初始化,并可以重新赋值。

类型推断机制:根据初始值自动推断变量的类型,使得定义变量时可以省略具体的数据类型及其前面的冒号。

在REPL环境下,可以重复使用同一个变量名来定义变量,而且变量前的修饰符和其类型都可以不一样,REPL会以最新的一个定义为准。

输入输出

向控制台输入数据方法

在这里插入图片描述

向控制台输出数据方法

  • print()和println(),可以直接输出字符串或者其他数据类型,其中println()在末尾自动换行。

  • printf()C语言风格格式化字符串。

  • print()、println()和printf()都在对象Predef中定义,该对象默认情况下被所有scala程序引用,因此可以直接使用Predef()对象提供的方法。

s字符串和f字符串

scala提供的字符串插值机制,以方便在字符串字面量中直接嵌入变量的值

在这里插入图片描述

写入数据到文件
在这里插入图片描述

从文件中读取数据

可以使用scala.io.Source的getLines方法实现对文件中所有行的读取
在这里插入图片描述

发布了16 篇原创文章 · 获赞 14 · 访问量 5027

猜你喜欢

转载自blog.csdn.net/atuo200/article/details/104674416