Go学习笔记
目录
Go语言基础
运算符
运算符用于在程序运行时执行数学或逻辑运算。
Go 语言内置的运算符有:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
算数运算符
++
,--
不是运算符,是一个单独的语句.a++
a = a + 1,a--
a = a - 1
运算符 | 描述 |
---|---|
+ | 相加 |
- | 相减 |
* | 相乘 |
/ | 相除 |
% | 求余 |
|
|
关系运算符
运算符 | 描述 |
---|---|
== | 检查两个值是否相等,如果相等返回 True 否则返回 False |
!= | 检查两个值是否不相等,如果不相等返回 True 否则返回 False |
> | 检查左边值是否大于右边值,如果是返回 True 否则返回 False |
>= | 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False |
< | 检查左边值是否小于右边值,如果是返回 True 否则返回 False |
<= | 检查左边值是否小于等于右边值,如果是返回 True 否则返回 False |
|
|
逻辑运算符
运算符 | 描述 |
---|---|
&& | 逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。 |
|| | 逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。 |
! | 逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。 |
|
|
位运算符
- 位运算符对整数在内存中的二进制位进行操作。
运算符 | 描述 |
---|---|
& | 参与运算的两数各对应的二进位相与。(两位均为1才为1) |
| | 参与运算的两数各对应的二进位相或。(两位有一个为1就为1) |
^ | 参与运算的两数各对应的二进位相异或,当两对应的二进位不一样时,结果为1。 |
<< | 左移n位就是乘以2的n次方。“a«b” 是把a的各二进位全部左移b位,高位丢弃,低位补0。 |
>> | 右移n位就是除以2的n次方。“a»b” 是把a的各二进位全部右移b位。 |
|
|
赋值运算符
运算符 | 描述 |
---|---|
= | 简单的赋值运算符,将一个表达式的值赋给一个左值 |
+= | 相加后再赋值 |
-= | 相减后再赋值 |
*= | 相乘后再赋值 |
/= | 相除后再赋值 |
%= | 求余后再赋值 |
<<= | 左移后赋值 |
>>= | 右移后赋值 |
&= | 按位与后赋值 |
|= | 按位或后赋值 |
^= | 按位异或后赋值 |
|
|
流程控制
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分, 流程控制可以说是一门语言的"经脉”。
Go语言中最常用的流程控制有
if
和for
, 而switch
和goto
主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。
if && else
if
条件判断基本写法:
|
|
当条件表达式1的结果为true时, 执行语句1, 否则判断条件表达式2, 如果满足则执行语句2, 都不满足时, 则执行语句3。if判断中的else if和else都是可选的, 可以根据实际需要进行选择。
Go语言规定与
if
匹配的左括号{
必须与if和表达式放在同一行,{
放在其他位置会触发编译错误. 同理与else
匹配的{
也必须与else
写在同一行,else
也必须与上一个if
或else
,if
右边的大括号在同一行。
|
|
for 循环
Go 语言中的所有循环类型均可以使用
for
关键字来完成。条件表达式返回
true
时循环体不停地进行循环, 直到条件表达式返回false
时自动退出循环。
|
|
|
|
for range 循环
- Go语言中可以使用
for range
遍历数组、切片、字符串、map 及通道(channel)。 通过for range
遍历的返回值有以下规律:- 数组、切片、字符串返回索引和值。
- map返回键和值。
- 通道(channel)只返回通道内的值。
|
|
switch case 循环
switch
语句可方便地对大量的值进行条件判断。- Go语言规定每个
switch
只能有一个default
分支。 fallthrough
语法可以执行满足条件的case的下一个case, 是为了兼容C语言中的case
设计的。
|
|
goto语句
goto
语句通过标签进行代码间的无条件跳转。goto
语句可以在快速跳出循环、避免重复退出上有一定的帮助。Go语言中使用goto
语句能简化一些代码的实现过程。goto
语句必须配合 标签使用.
|
|
break(跳出循环)
break
语句可以结束for
、switch
和select
的代码块。break
语句还可以在语句后面添加标签,表示退出某个标签对应的代码块,标签要求必须定义在对应的for
、switch
和select
的代码块上。
|
|
continue(继续下次循环)
continue
语句可以跳过前循环, 进行下一次的循环, 仅限在for循环内使用。在
continue
语句后添加标签时, 表示开始标签对应的循环。
|
|
九九乘法表
|
|