【Scala】(三)Scala 基础之运算符

简介: 【Scala】(三)Scala 基础之运算符

文章目录


一、运算符介绍

二、算术运算符

三、关系运算符(比较运算符)

四、逻辑运算符

五、赋值运算符

六、位运算符

运算符的特别说明

运算符优先级


一、运算符介绍


运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。


算术运算符

赋值运算符

比较运算符(关系运算符)

逻辑运算符

位运算符


二、算术运算符


算术运算符(arithmetic)是对数值类型的变量进行运算的,在Scala程序中使用的非常多。


20191225092848747.png


/

scala> var r1:Int = 10/3
r1: Int = 3
scala> var r2:Double = 10/3
r2: Double = 3.0
scala> var r2:Double = 10.0/3
r2: Double = 3.3333333333333335
scala> var r3 = r2.formatted("%.2f")
r3: String = 3.33


细节说明:


对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例如:var x : Int = 10/3 ,结果是 3


当对一个数取模时,可以等价 a%b=a-a/b*b , 这样我们可以看到取模的一个本质运算(和java 的取模规则一样)。


注意:Scala中没有++、--操作符,需要通过+=、-=来实现同样的效果


三、关系运算符(比较运算符)


基本介绍


关系运算符的结果都是boolean型,也就是要么是true,要么是false


关系表达式 经常用在 if结构的条件中或循环结构的条件中


关系运算符的使用和java一样


20191225093538571.png


细节说明


关系运算符的结果都是Boolean型,也就是要么是true,要么是false


关系运算符组成的表达式,我们称为关系表达式。 a > b


比较运算符“==”不能误写成“=”


使用陷阱: 如果两个浮点数进行比较,应当保证数据类型一致


四、逻辑运算符


介绍


用于连接多个条件(一般来讲就是关系表达式),最终的结果也是一个Boolean值。


逻辑运算符一览


假定变量 A 为 true,B 为 false


20191225093914641.png


/

scala> var a = true
a: Boolean = true
scala> var b = false
b: Boolean = false
scala> a && b
res15: Boolean = false
scala> a || b
res16: Boolean = true
scala> !(a && b)
res17: Boolean = true


五、赋值运算符


介绍


赋值运算符就是将某个运算后的值,赋给指定的变量。


赋值运算符的分类


20191225094111353.png


赋值运算符的分类


20191225094226268.png


说明:这部分的赋值运算涉及到二进制相关知识,其运行的规则和Java一样。

scala> var a = 10
a: Int = 10
scala> var b = 99
b: Int = 99
scala> val t = a
t: Int = 10
scala> a = b
a: Int = 99
scala> b = t
b: Int = 10


赋值运算符特点


运算顺序从右往左

赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值/字面量

复合赋值运算符等价于下面的效果

比如:a+=3 等价于a=a+3


六、位运算符


20191225094751686.png


运算符的特别说明


Scala不支持三目运算符 , 在Scala 中使用 if – else 的方式实现。

val num = 5 > 4 ? 5 : 4 //没有

val num = if (5>4) 5 else 4


运算符优先级


1.运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如右表,上一行运算符总优先于下一行。


2.只有单目运算符、赋值运算符是从右向左运算的。


3.运算符的优先级和Java一样。

小结运算符的优先级
1.() []
2.单目运算
3.算术运算符
4.移位运算
5.比较运算符(关系运算符)
6.位运算
7.关系运算符
8.赋值运算
9.,


20191225100030499.png



目录
相关文章
|
6月前
|
Java 大数据 Scala
Scala入门【运算符和流程控制】
Scala入门【运算符和流程控制】
|
6月前
|
Java 编译器 API
Scala学习--day01变量与数据类型、运算符
Scala学习--day01变量与数据类型、运算符
|
分布式计算 编译器 Scala
一天学完spark的Scala基础语法教程二、运算符与分支语句(idea版本)
一天学完spark的Scala基础语法教程二、运算符与分支语句(idea版本)
107 0
一天学完spark的Scala基础语法教程二、运算符与分支语句(idea版本)
|
Java Scala Python
Scala从零起步:运算符
继续Scala从零起步系列,在前文分享变量和标识符的基础上,本文介绍Scala中的运算符。简单地说,Scala中的运算符和其他编程语言中的运算符并无太大区别,更多都是相同或者相近的,但是出于系列文章的内容完整性,仍然单开此文对其予以介绍。
147 0
Scala从零起步:运算符
|
1月前
|
分布式计算 大数据 Java
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
50 5
|
1月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
50 3
|
1月前
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
42 0
|
1月前
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
92 0
|
1月前
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
26 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
|
1月前
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
37 0