运算符优先级|学习笔记

简介: 快速学习运算符优先级。

开发者学堂课程【Scala 核心编程-基础:运算符优先级】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8907


运算符优先级

 

基本内容

一、 运算符优先级

二、 小结运算符的优先级

 

一、 运算符优先级

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

2、 运算符优先级的一览图

image.png

(1) 首先看到这个箭头,越往上面,运算级越高越往下面,运算级别越低。

(2) 标红两条线,Scala 里面找到单目运算,什么叫单目运算呢?就是参与运算的只有一个变量,叫做单目运算,它是从右到左的,比如说对、取返或者是位还有一个就是赋值运算,也是从右向左,比如说先把右边的结果拿到赋值给左边的变量这两个是从右向左,其他的运算规则都是从左到右

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

4、 运算符的优先级和 Java一样。

 

二、 小结运算符的优先级

1、 ()、[ ]按照表格行数:第1行

2、 单目运算按照表格行数:第2

3、 算数运算符按照表格行数:第3、4行

4、 移位运算符按照表格行数:第5

5、 比较运算符按照表格行数:第6、7行(也叫关系运算符)

6、 位运算按照表格行数:第8、9、10

7、 关系运算符按照表格行数:第11、12

8、 赋值运算符按照表格行数:第13

9、 ,运算符按照表格行数:第14

(1) 举例:“,运算符“的使用(它的使用级别是最低的)

package com. atguigu. chapter03. notice

object Demo01 {

def main(args: Array[string] ): Unit = {

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

//val num2= 5 > 4 ? 5 : 4 错误,这个语法不成立。

个数的最大值 首先定义两个数;

val n1 = 4

val n2 = 8

接着进行数字的判断;

val res = if  (n1 > n2) n1 else n2

如果 n1大于 n2,那么返回 n1,否则返回 n2

printl(“res=”+ res)

val n3 = 11

res = if ( res > n3 ) res else n3

// 如果上面的返回结果大于 n3,那么就返回上来的结果 ;否则的话返回 n3

printl(“res=”+ res)

//“,运算符

printl(“hello”,“abc”,“kkk”)

}

}

运算结果:

res = 8

res = 11

(hello,abc,kkk)

(2) 但是由于“+”的运算级比“,”的运算级高,在接下来的程序中将优先执行“+”;

//“,运算符

printl(“hello”,“abc” = “uuu,“kkk”)

运行结果:

(hello,abc uuu,kkk)

相关文章
|
IDE API 开发工具
Gleam
Gleam 是面向 Erlang 虚拟机的类型化语言,Gleam 的语法对于类型化语言来说非常优雅和简单。如果能看到 Gleam 像 Elixir 一样成功,那就太酷了。
728 4
|
Rust 安全 图形学
Rust图形革新:2D与3D编程的全新体验,它能否颠覆传统?
【8月更文挑战第31天】随着Rust语言的日益成熟,其在图形编程领域的应用逐渐增多。本文将探讨Rust在图形编程中的表现,从2D扩展至3D。通过使用`pixman`库处理2D图形,以及借助`naga`库实现3D渲染,展示了Rust在图形编程中的潜力。尽管与C++相比,Rust的生态仍在发展中,但其安全性与性能使其成为图形编程的重要工具之一,值得开发者关注和学习。
574 0
|
机器学习/深度学习 JSON JavaScript
【JavaScript】JS 函数式编程入门指南:从概念到实践 (二)
【JavaScript】JS 函数式编程入门指南:从概念到实践 (二)
|
Web App开发 Rust JavaScript
认识 WebAssembly 与 Rust 实践
作者基于 WebAssembly 的兴趣写下本文,提供了一种未来在业务中遇到性能问题时的优化手段和思路。
758 0
认识 WebAssembly 与 Rust 实践
|
存储 Rust 运维
6秒拉起3000个!阿里云Severeless产品背后的底层技术究竟有多硬核?
本文将详细展开介绍袋鼠系统在阿里云强大基础设施上所做的优化,揭秘支持阿里云云原生 Serverless 快速弹性背后的底层技术。
6秒拉起3000个!阿里云Severeless产品背后的底层技术究竟有多硬核?
|
消息中间件 Rust 安全
Serverless时代Rust即将称王,详解C、Java、Go、Rust高并发背后的技术?
笔者在上周参加阿里云开发者大会时,特别注意到一个现象就是Serverless这个概念被反复提及,其受关注程度提升明显,笔者仔细看了一下,Serverless的核心理念就是函数式计算,开发者不需要再关注具体的模块,云上部署的粒度变成了程序函数,自动伸缩、扩容等工作完全由云服务负责,能够想象Serverless必将在未来引领时代潮流。
Serverless时代Rust即将称王,详解C、Java、Go、Rust高并发背后的技术?
|
Rust Java Serverless
那些必须要了解的Serverless时代的并发神器-Rust语言Tokio框架基础
今天我们继续高并发的话题,传统的云计算技术,本质上都是基于虚拟机的,云平台可以将一些性能强劲的物理服务器,拆分成若干个虚拟机,提供给用户使用,但在互联网发展到今天,虚拟机还是太重了。即使是飞天集群,新增部署虚拟机的时间也是以分钟来计的。但是对于互联网用户来讲20秒的等等就是就会千万50%以上的用户流失,不能忍受的煎熬,因此Docker秒级启动的速度也不是个完美的解决方案,最终还是要Serverless极速的伸缩才能满足客户需求。
那些必须要了解的Serverless时代的并发神器-Rust语言Tokio框架基础
|
4天前
|
数据采集 人工智能 安全
|
13天前
|
云安全 监控 安全