【golang学习总结】4 golang运算符使用概述

本文介绍SpringBoot相关内容。和【跨考菌】一起加油吧~

在这里插入图片描述

如果你有收获,记得帮博主一键三连哦


1 标识符

1.1 命名规则

  1. 由 26 个英文字母大小写, 0-9 , _ 组成
  2. 数字不可以开头。 var num int //ok var 3num int //error
  3. Golang 中严格区分大小写
    var num int
    var Num int
    说明: 在 golang 中, num 和 Num 是两个不同的变量
  4. 标识符不能包含空格
    在这里插入图片描述
  5. 下划线"_"本身在 Go 中是一个特殊的标识符, 称为空标识符。 可以代表任何其它的标识符, 但
    是它对应的值会被忽略(比如: 忽略某个返回值)。 所以仅能被作为占位符使用, 不能作为标识符使用
    【golang学习总结】4 golang运算符使用概述_第1张图片
  6. 不能以系统保留关键字作为标识符(一共有 25 个) , 比如 break, if 等等…

1.2 标识符命名注意事项

  1. 包名: 保持 package 的名字和目录保持一致, 尽量采取有意义的包名, 简短, 有意义, 不要和
    标准库不要冲突 fmt
    【golang学习总结】4 golang运算符使用概述_第2张图片
  2. 变量名、 函数名、 常量名: 采用驼峰法
    举例:
    var stuName string = “tom” 形式: xxxYyyyyZzzz …
  3. 如果变量名、 函数名、 常量名首字母大写, 则可以被其他的包访问; 如果首字母小写, 则只能
    在本包中使用 ( 注: 可以简单的理解成, 首字母大写是公开的, 首字母小写是私有的) ,在 golang 没有public , private 等关键字。
    【golang学习总结】4 golang运算符使用概述_第3张图片
    【golang学习总结】4 golang运算符使用概述_第4张图片

1.3 系统保留关键字

【golang学习总结】4 golang运算符使用概述_第5张图片

1.4 系统预定义标识符

【golang学习总结】4 golang运算符使用概述_第6张图片

2 运算符

2.1 算术运算符

【golang学习总结】4 golang运算符使用概述_第7张图片

2.1.1 简单案例

/的用法

//重点讲解 /、%
//说明,如果运算的数都是整数,那么除后,去掉小数部分,保留整数部分
fmt.Println(10 / 4) 

var n1 float32 = 10 / 4 //
fmt.Println(n1)

//如果我们希望保留小数部分,则需要有浮点数参与运算
var n2 float32 = 10.0 / 4
fmt.Println(n2)
  • 整数相除,得到的是去掉小数部分的整数;
  • 如果希望保留小数部分,需要浮点数参与运算。

%的用法

看一个公式 a % b = a - a / b * b

fmt.Println("10%3=", 10 % 3) // =1
fmt.Println("-10%3=", -10 % 3) // = -10 - (-10) / 3 * 3 = -10 - (-9) = -1
fmt.Println("10%-3=", 10 % -3) // =1
fmt.Println("-10%-3=", -10 % -3) // =-1

++和–的用法

// ++ 和 --的使用
var i int = 10
i++ // 等价 i = i + 1
fmt.Println("i=", i) // 11
i-- // 等价 i = i - 1
fmt.Println("i=", i) // 10

2.1.2 注意事项

  1. 对于除号 “/”, 它的整数除和小数除是有区别的整数之间做除法时, 只保留整数部分而舍弃
    小数部分。 例如: x := 19/5 ,结果是 3
  2. 当对一个数取模时, 可以等价 a%b=a-a/b*b , 这样我们可以看到 取模的一个本质运算。
  3. Golang 的自增自减只能当做一个独立语言使用时, 不能这样使用
    【golang学习总结】4 golang运算符使用概述_第8张图片
  4. Golang 的++ 和 – 只能写在变量的后面, 不能写在变量的前面, 即: 只有 a++ a-- 没有 ++a
    –a
    【golang学习总结】4 golang运算符使用概述_第9张图片
  5. Golang 的设计者去掉 c / java 中的 自增自减的容易混淆的写法, 让 Golang 更加简洁, 统一。 (强制性的)

2.2 关系运算符

【golang学习总结】4 golang运算符使用概述_第10张图片

2.2.1 简单案例

//演示关系运算符的使用
var n1 int = 9
var n2 int = 8
fmt.Println(n1 == n2) //false
fmt.Println(n1 != n2) //true
fmt.Println(n1 > n2) //true
fmt.Println(n1 >= n2) //true
fmt.Println(n1 < n2) //flase
fmt.Println(n1 <= n2) //flase
flag := n1 > n2
fmt.Println("flag=", flag)

2.2.2 使用细节

  1. 关系运算符的结果都是 bool 型, 也就是要么是 true, 要么是 false。
  2. 关系运算符组成的表达式, 我们称为关系表达式: a > b
  3. 比较运算符"=="不能误写成 “=” !!

2.3 逻辑运算符

【golang学习总结】4 golang运算符使用概述_第11张图片

2.3.1 简单案例

【golang学习总结】4 golang运算符使用概述_第12张图片

2.3.2 使用细节

  1. &&也叫短路与: 如果第一个条件为 false, 则第二个条件不会判断, 最终结果为 false
  2. ||也叫短路或: 如果第一个条件为 true, 则第二个条件不会判断, 最终结果为 true
  3. 案例演示
    【golang学习总结】4 golang运算符使用概述_第13张图片

2.4 赋值运算符

【golang学习总结】4 golang运算符使用概述_第14张图片

2.4.1 简单案例

//赋值运算符的使用演示
// var i int 
// i = 10 //基本赋值

//有两个变量,a和b,要求将其进行交换,最终打印结果
// a = 9 , b = 2 ==> a = 2 b = 9
a := 9
b := 2
fmt.Printf("交换前的情况是 a = %v , b=%v \n", a, b)
//定义一个临时变量
t := a
a = b //
b = t //
fmt.Printf("交换后的情况是 a = %v , b=%v \n", a, b)

//复合赋值的操作
a += 17 // 等价 a = a + 17
fmt.Println("a=", a)

2.4.2 赋值运算符的特点

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

2.4.3 交换两个变量

//有两个变量,a和b,要求将其进行交换,但是不允许使用中间变量,最终打印结果
var a int = 10
var b int = 20

a = a + b //
b = a - b // b = a + b - b ==> b = a
a = a - b // a = a + b - a ==> a = b

fmt.Printf("a=%v b=%v", a, b)

2.5 位运算符和移位运算符

【golang学习总结】4 golang运算符使用概述_第15张图片

2.5.1 位运算符

【golang学习总结】4 golang运算符使用概述_第16张图片

2.5.2 原码-反码-补码

位运算可能会涉及到负数的操作。这就需要了解正负数的原码-反码-补码的计算方式。
【golang学习总结】4 golang运算符使用概述_第17张图片
在计算机运算的时候都是以补码的方式来计算的。

2.5.3 位运算案例

【golang学习总结】4 golang运算符使用概述_第18张图片
【golang学习总结】4 golang运算符使用概述_第19张图片

2.5.4 移位运算符

Golang 中有 2 个移位运算符:
>><< 右移和左移,运算规则:
右移运算符 >>: 低位溢出,符号位不变,并用符号位补溢出的高位
左移运算符 <<: 符号位不变,低位补 0

案例:
a := 1 >> 2 // 0000 0001 =>0000 0000 = 0
c := 1 << 2 // 0000 0001 ==> 0000 0100 => 4

2.6 其他运算符

在这里插入图片描述

2.7 特别说明

golang不支持三元运算符!
但是可以通过下面的方式实现三元运算符的效果。

var i int = 10
var j int = 12
//传统的三元运算
//n = i > j ? i : j
if i > j {
	n = i
} else {
	n = j
}
fmt.Println("n=", n) // 12

2.8 运算符的优先级

【golang学习总结】4 golang运算符使用概述_第20张图片

  1. 运算符有不同的优先级, 所谓优先级就是表达式运算中的运算顺序。上一行运算符总优先于下一行。
  2. 只有单目运算符、 赋值运算符是从右向左运算的。
  3. 梳理了一个大概的优先级
    1: 括号, ++, - -
    2: 单目运算
    3: 算术运算符
    4: 移位运算
    5: 关系运算符
    6: 位运算符
    7: 逻辑运算符
    8: 赋值运算符
    9: 逗号

你可能感兴趣的:(golang学习总结,go,运算符)