本文介绍SpringBoot相关内容。和【跨考菌】一起加油吧~
如果你有收获,记得帮博主一键三连哦😊
1 标识符
1.1 命名规则
- 由 26 个英文字母大小写, 0-9 , _ 组成
- 数字不可以开头。
var num int //ok var 3num int //error
- Golang 中严格区分大小写。
var num int
var Num int
说明: 在 golang 中, num 和 Num 是两个不同的变量 - 标识符不能包含空格
- 下划线"_"本身在 Go 中是一个特殊的标识符, 称为空标识符。 可以代表任何其它的标识符, 但
是它对应的值会被忽略(比如: 忽略某个返回值)。 所以仅能被作为占位符使用, 不能作为标识符使用
- 不能以系统保留关键字作为标识符(一共有 25 个) , 比如 break, if 等等…
1.2 标识符命名注意事项
- 包名: 保持 package 的名字和目录保持一致, 尽量采取有意义的包名, 简短, 有意义, 不要和
标准库不要冲突 fmt
- 变量名、 函数名、 常量名: 采用驼峰法
举例:
var stuName string = “tom” 形式: xxxYyyyyZzzz … - 如果变量名、 函数名、 常量名首字母大写, 则可以被其他的包访问; 如果首字母小写, 则只能
在本包中使用 ( 注: 可以简单的理解成, 首字母大写是公开的, 首字母小写是私有的) ,在 golang 没有public , private 等关键字。
1.3 系统保留关键字
1.4 系统预定义标识符
2 运算符
2.1 算术运算符
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 注意事项
- 对于除号 “/”, 它的整数除和小数除是有区别的: 整数之间做除法时, 只保留整数部分而舍弃
小数部分。 例如: x := 19/5 ,结果是 3 - 当对一个数取模时, 可以等价
a%b=a-a/b*b
, 这样我们可以看到 取模的一个本质运算。 - Golang 的自增自减只能当做一个独立语言使用时, 不能这样使用
- Golang 的++ 和 – 只能写在变量的后面, 不能写在变量的前面, 即: 只有 a++ a-- 没有 ++a
–a
- Golang 的设计者去掉 c / java 中的 自增自减的容易混淆的写法, 让 Golang 更加简洁, 统一。 (强制性的)
2.2 关系运算符
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 使用细节
- 关系运算符的结果都是 bool 型, 也就是要么是 true, 要么是 false。
- 关系运算符组成的表达式, 我们称为关系表达式: a > b
- 比较运算符"=="不能误写成 “=” !!
2.3 逻辑运算符
2.3.1 简单案例
2.3.2 使用细节
- &&也叫短路与: 如果第一个条件为 false, 则第二个条件不会判断, 最终结果为 false
- ||也叫短路或: 如果第一个条件为 true, 则第二个条件不会判断, 最终结果为 true
- 案例演示
2.4 赋值运算符
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 赋值运算符的特点
- 运算顺序从右往左
var c int
c = a +3 // 赋值运算的执行顺序是从右向左
fmt.Println(c)
- 赋值运算符的左边 只能是变量,右边 可以是变量、 表达式、 常量值
//2)赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值
// 表达式:任何有值都可以看做表达式
var d int
d = a //
d = 8 + 2 * 8 // =的右边是表达式
d = test() + 90 // =的右边是表达式
//d = 890 // 890常量
fmt.Println(d)
- 复合赋值运算符等价于下面的效果
比如: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 位运算符和移位运算符
2.5.1 位运算符
2.5.2 原码-反码-补码
位运算可能会涉及到负数的操作。这就需要了解正负数的原码-反码-补码的计算方式。
在计算机运算的时候都是以补码的方式来计算的。
2.5.3 位运算案例
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 运算符的优先级
- 运算符有不同的优先级, 所谓优先级就是表达式运算中的运算顺序。上一行运算符总优先于下一行。
- 只有单目运算符、 赋值运算符是从右向左运算的。
- 梳理了一个大概的优先级
1: 括号, ++, - -
2: 单目运算
3: 算术运算符
4: 移位运算
5: 关系运算符
6: 位运算符
7: 逻辑运算符
8: 赋值运算符
9: 逗号