Scala的概念以及基本语法

发布于:2022-12-28 ⋅ 阅读:(487) ⋅ 点赞:(0)

一、 概念

1、 scala语言与java语言之间的关系

scala编程与java语言之间都有相互借鉴的地方,而scala是起源于java的,所以代码的运行机制与java基本一致,因此scala中可以无缝的衔接javad代码。

2、 安装

  • 解压安装
  • 配置环境变量

3、 使用

  • 编写一个xxx.scala源码
  • 源码中以scala语法编写代码
  • scala将编写好的scala代码转换成二进制文件.class
  • scala将编写好的.class字节码文件加载到jvm虚拟机中运行

注意点:
scala是一门纯面向对象编程语言,里面没有static,void这种关键字,也就意味着在scala当中没有和java一样的静态内容一说,scala为了弥补没有静态内容的缺陷,提供了一个object类型的类,类中声明的属性和方法都是静态内容

二、 scala基本语法

1、 注释语法

单行注释 //
多行注释 /* */
文档注释 /** */

2、 变量和常量

变量   var 变量名:变量类型 = 变量值
常量   val 常量名:常量类型 = 常量值

3、 标识符

凡是可以自己起名字的都叫标识符
scala标识符可以是关键字,但是关键字必须加``
以字母或者下划线开头,后面接字母,数字,下划线
以操作符开头,后面只能跟操作符(+-*/)

4、 标准输出

printf
		printf("你的名字为%s", name)
		用法		%d 十进制数字
				%s 字符串
				%c 字符
				%e 指数浮点数
				%f 浮点数
				%i 整数(十进制)
				%o 八进制
				%u 无符号十进制
				%x 十六进制
				%% 打印%

println/print
模板输出 println(s"你的名字$name")

5、 控制台输出

val name = StdIn.readLine()
或者
var sc:Scanner = new Scanner(System.in)

6、数据类型 Any

  • AnyVal
整形 Byte Short Int Long
浮点型 Float  Double
布尔型  Boolean
字符型  Char
Unit  等同于java中的void,无返回值类型
StringOps   对java中的string增强
  • AnyRef
scala集合
java所有类
scala中其他类
NullAnyRef中一个特殊值,是所有AnyRef的子类

在AnyVal和AnyRef都有一个特殊的子类Nothing,Nothing一般用在函数无返回值,但是有异常抛出的时候

7、 运算符

算术运算符   +-*/%
比较运算符
		== 如果没有重写equals方法,代表比较两个对象的地址值,重写方法后,代表比较两个对象的值
		eq  没有重写equals方法,代表比较两个对象的地址值,重写后比较的也是地址值
赋值运算符
逻辑运算符
位运算符

8、流程控制

  • 顺序流程 — 代码遵循从上而下依次执行

  • 分支流程
    只有if else类型,switch case在scala中不存在这种语法

  • 循环流程

for 
	范围数据循环 
			for(i <- start to end)  左闭右闭
			for(i <- start until end) 左闭右开
	循环守卫
			for(i <- start to end if i != num)  只有满足if条件才执行
	循环步长
			for(i <- start to end by num)  by 表示步长
	嵌套循环
			for(i <- start to end; j <- start to end)
	循环倒序
			for(i <- start to end reverse)
	循环返回值
			var a = for(i <- start to/until end reverse/by num if 循环守卫) yield  i
	循环的变量引入
			for( i <- start to/until end; j = i*3){
         		ij
			}
	
while
do while 和java中类似

循环的终止
	java中的循环终止方式
		continue:跳出本次循环,从下一次循环继续开始
		break:终止循环,执行循环之后的代码
		return:终止循环,还会终止循环之后的代码
	scala中循环终止方式
		scala中没有breakcontinue关键字,如果我们想要终止循环,我们需要使用一个函数来完成循环的结束
		scala中支持break类型的终止,不支持continue类型
		Breaks.breakable(
       		循环代码
      		需要结束循环的结束,使用Breaks.break()
		)	
		Breaks可以省略	
本文含有隐藏内容,请 开通VIP 后查看