2021-2022年寒假学习进度05
今天学习scala语言。
记录今天学习笔记:
scala与java的关系
scala语言特点:
Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的
静态类型编程语言(静态语言需要提前编译的如:Java、c、c++等,动态语言如:js)。
1)Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。(多范式,就是多种编程方
法的意思。有面向过程、面向对象、泛型、函数式四种程序设计方法。)
2)Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有
的Java类库,实现两种语言的无缝对接。
3)Scala单作为一门语言来看,非常的简洁高效。
4)Scala在设计时,马丁·奥德斯基是参考了Java的设计思想,可以说Scala是源于Java,同时马丁·奥
德斯基也加入了自己的思想,将函数式编程语言的特点融合到JAVA中, 因此,对于学习过Java的同学,
只要在学习Scala的过程中,搞清楚Scala和Java相同点和不同点,就可以快速的掌握Scala这门语言。
使用上的特点
参数声明方式:java->类型 参数名
scala->参数名:类型
scala没有public关键字,若不声明访问权限,那么就是公共的
scala中没有静态语法,所以也没有static关键字
unit类型便是scala无返回值
scala中函数使用:方法名(参数列表):返回值类型={方法体}
scala中方法的声明采用关键字def声明
scala中方法实现赋值给方法声明,所以中间需要等号连接
scala是一个完全面向对象的语言,所以没有静态语法,为了能调用静态语法(即模仿静态语法)
采用伴生对象单例的方式调用方法。
scala的注释方式和java相同。
scala的常量和变量:
var 变量名 [: 变量类型] = 初始值
var i:Int = 10
val 常量名 [: 常量类型] = 初始值
val j:Int = 20
注意:能用常量的地方不用变量
(1)声明变量时,类型可以省略,编译器自动推导,即类型推导
(2)类型确定后,就不能修改,说明 Scala 是强数据类型语言。
(3)变量声明时,必须要有初始值
(4)在声明/定义一个变量时,可以使用 var 或者 val 来修饰,var 修饰的变量可改变,
val 修饰的变量不可改。
var和val的声明都需要初始化赋值
还有一点var可以在伴生类中使用
var p:Int=_赋值
伴生对象中使用会报错,并且必须明确变量类型
var 修饰的对象引用可以改变,val 修饰的对象则不可改变,但对象的状态(值)
却是可以改变的。(比如:自定义对象、数组、集合等等)
scala的标识符的命名规范
Scala 对各种变量、方法、函数等命名时使用的字符序列称为标识符。即:凡是自己可
以起名字的地方都叫标识符。
1)命名规则
Scala 中的标识符声明,基本和 Java 是一致的,但是细节上会有所变化,有以下三种规
则:
(1)以字母或者下划线开头,后接字母、数字、下划线
(2)以操作符开头,且只包含操作符(+ - * / # !等)
(3)用反引号`....`包括的任意字符串,即使是 Scala 关键字(39 个)也可以
•
package, import, class, object, trait, extends, with, type, for
•
private, protected, abstract, sealed, final, implicit, lazy, override
•
try, catch, finally, throw
•
if, else, match, case, do, while, for, return, yield
•
def, val, var
•
this, super
•
new
•
true, false, null
字符串输出的基本语法:
基本语法
(1)字符串,通过+号连接
(2)printf 用法:字符串,通过%传值。
(3)字符串模板(插值字符串):通过$获取变量值
使用字符串模板时需要加一个s;
多行字符串,在 Scala中,利用三个双引号包围多行字符串就可以实现。
输入的内容,带有空格、\t 之类,导致每一行的开始位置不能整洁对齐。
应用 scala 的 stripMargin 方法,在 scala 中 stripMargin 默认
是“|”作为连接符,在多行换行的行头前面加一个“|”符号即可。
如果需要对变量进行运算,那么可以加${}
例
var p=
s"""
|sss
|lll
|name=$name
|age=${age+2}
""".stripMargin

今天先学到这里明天继续学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?