栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

三、Scala的运算符

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

三、Scala的运算符

Scala的运算符
  • 1.算术运算符
  • 2 赋值运算符
  • 3.关系运算符
  • 4.逻辑运算符
  • 5.位运算符
    • 5.1铺垫知识
      • 5.1.1进制
      • 5.1.2 8421码
      • 5.1.3整数的原码、反码、补码计算规则
    • 5.2 位运算符


  • 运算符:用来拼接变量或常量的符号
  • 表达式:通过运算符连接起来的式子

注意:

  • 在Scala中,运算符并不仅仅是运算符,也是函数的一种
  • Scala中没有三元运算符,被if-else代替了
1.算术运算符


注意:

  1. Scala中是没有++,–这两个算术运算符的,这点和Java不一样
  2. 整数相除的结果,还是整数;如果想获得小数,则必须有浮点型数据参与。比如10/3 结果是 3; 10/3.0 结果是 3.3333(无限循环)
  3. 关于+号拼接字符串:任意类型的数据和字符串拼接,结果都将是一个新的字符串
  4. 关于%操作,假设求a%b的值,它的底层原理是:a - a/b * b


2 赋值运算符

基本赋值运算符:=
扩展赋值运算符:+=, -=, *=, /=, %=

3.关系运算符


但Scala的关系运算符用法也有跟Java不一样的地方:

示例:
有一个字符串"abc",再创建第二个字符串,值为:在第一个字符串后拼接一个空字符串。然后比较这两个字符串是否相等、再查看它们的引用值是否相等。

4.逻辑运算符


注意:

  1. 逻辑表达式不管简单或复杂,最终结果一定是Boolean类型的值
  2. Scala中不能对一个Boolean类型的数据进行连续取反操作,但在Java中是可以的(即!!false会报错的)
5.位运算符 5.1铺垫知识 5.1.1进制


注意:

  • 关于二进制的数据,最前边的一位叫符号位(0表示正数,1表示负数);其他位叫数值位
5.1.2 8421码

8421码是用来描述二进制和十进制数据之间的关系的。

5.1.3整数的原码、反码、补码计算规则

原反补码指的都是二进制数据(计算机底层存储、操作和运算数据都是采用数据的二进制补码形式来实现的)。

5.2 位运算符


注意:

  • 位运算符只针对整型数据
  • 运算符操作的是数据的二进制补码形式
  • 小技巧:一个数字被同一个数字位异或两次,该数字值不变(即10 ^ 20 ^ 20,结果还是10)

案例:交换两个变量的值
方式一:通过算术运算符实现

var a = 10
var b = 20
a = a + b //a = 30, b = 20
b = a - b //a = 30, b = 10
a = a - b //a = 20, b = 10
print("a: " + a)
print("b: " + b)

方式二:通过定义临时变量实现

var a = 10
var b = 20
var temp = a
a = b //a = 20, b = 20, temp = 10
b = temp //a = 20, b = 10, temp = 10
print("a: " + a)
print("b: " + b)

方式三:通过位运算方法实现

var a = 10
var b = 20
var temp = a ^ b
a = a ^ temp //a =  a ^ temp = a ^ a ^ b = 10 ^ 10 ^ 20 = 20
b = b ^ temp //b = b ^ temp = b ^ a ^ b = 20 ^ 10 ^ 20 = 10
print("a: " + a)
print("b: " + b)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/333256.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号