运算符】 【Web前端基础】赋值运算符的优先级

2020-12-25 11:42发布

12条回答
小小李兆佳
2020-12-28 15:17

/*赋值运算符的特点
(1)运算顺序从右到左
var c int
c = a + 3//赋值运算的执行顺序是从右向左
(2)赋值运算的左边 只能是变量右边,可以使变量、表达式、常量值
//(2)赋值运算符的左边只能是变量,右边可以使变量、表达式、常量值
//表达式;任何有值都可以看做表达式
var d int
d = a //
d = 8 + 2 * 8//=的右边是表达式
d = test() + 90//=的右边是表达式
d = 890//常量
fmt.Println(d)
(3)复合赋值运算符等价于下面的效果
比如: a+=3 等价于 a=a+3
/
/

//面试题
//有两个变量,a和b,要求将其进行交换,但是不允许使用中间变量,最终打印结果;
//var a int = 10
//var b int = 20
a = a + b//左边a是变量未知的,右边可以理解为10+20
b= a -b //左边为变量,b是未知的,根据a = a+b 那么b=b+a(现在是b=a-b)那么就是b=b+a-b最后是b=a
a=a - b// 左边为变量,a是未知的,根据a = a +b 那么a=a+b-a,就是a=b
fmt.Printf(“a=%v b=%v”,a,b)

(1)案例1;求两个数的最大值
(2)案例2;求三个数的最大值
运算符优先级
(1)运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。
如右表,上一行运算符总优先于下一行。
(2)只有单目运算符、赋值运算符是从右向左运算的。
(3)大致的顺序整理
分类 概述 关联性
后缀 ()【】->.++ – 左到右
单目 ±!^*&(类型,强制类型转换)sizeof(长度运算符) 右到左
乘法 * / % 左到右
加法 ± 左到右
移位 << >> 左到右
关系 < <= > >= 左到右
相等(关系) == != 左到右
按位AND & 左到右
按位XOR ^ 左到右
按位OR | 左到右
逻辑与 && 左到右
逻辑或 || 左到右
赋值运算符 = += /= *= -= %= <<= >>= &= ^= |= 右到左
逗号 . 左到右


一周热门 更多>