go语言基础
1. 定义变量,使用变量
# 注释符号 #
/* 多行注释
定义字符串
*/
var name string = "forasp"
# 或者
name := "John" //go会自动推断出name为string类型
var name, age = "John", 30
# 定义int 
var age int = 18;
# 输出
fmt.Println(name)
fmt.Println(age)
 
2. 变量的使用范围
常见在包内定义,则包内都可以使用
如果是函数(循环)内,则是内部使用
 
如果跨包使用,首字母必须大写才可见。
 
3. 定义变量,函数名称规则
以字母或下划线 _ 开头;
后续字符可以是字母、数字或下划线;
区分大小写;
不可使用关键字
不得使用__ 双下划线的魔术方法
 
常见关键词
break 终止循环
case switch 分支
chan 通道类型
const 常量声明
continue 跳过当前循环体
default 默认分支
defer 延迟执行函数
else 条件分支
fallthrough 强制穿透 switch 分支
for 循环控制
func 函数定义
go 启动协程
goto 无条件跳转
if 条件判断
import 导入包
interface 接口类型
map 映射类型
package 包声明
range 遍历集合
return 返回函数结果
select 多路通信选择
struct 结构体类型
switch 条件分支
type 类型定义
var 变量声明
 
4. 定义常量
const constAge int = 0
或者
const (
constAge=1
constName=forasp
)
 
5. 语句块:
(1) if语句:
if age > 18 {
    fmt.Println("Boy")
} else {
    fmt.Println("Children")
}
(2) 循环:只有for 没有while
for i := 0; i < 5; i++ {
    fmt.Println(i)
}
(3)选择 switch
 
switch symbols {
case "+":
fmt.Println("加法")
case "-":
fmt.Println("减法")
case "*":
fmt.Println("乘法")
case "/":
fmt.Println("除法")
default:
fmt.Println("其他")
}
(4)控制语句
break 循环
continue 循环使用
goto
 
(5) 定义函数
函数名称定义和变量规范一致
func function_name( [parameter list] ) [return_types] {
   函数体
}
举例说明:
# 变量函数,没有返回
func sayHello(name string) {
fmt.Println("Hello,", name)
}
# 有多个参数,有单个返回值和类型
func add(a int, b int) int {
result := a + b
return result
}
# 简写连续类型一致
func add(a, b int) int
# 返回多个类型
func divide(a int, b int) (int, int) {
quotient := a / b
remainder := a % b
return quotient, remainder
}
 
6. go的计算
(1)加减程程
+ 相加 1+2= 3 (注意这个可以用于字符串连接)
- 相减 2-1 = 1
* 相乘 1*2 = 2
/ 相除 2/1 = 2
% 求余数 3%2 =1 ;1%1=0
++ 自增 1++ = 2-> ++ =3
- 自减 1-- = 0 -> -- = -1
 
(2)逻辑运算
&& 并且
|| 或者
! 非/ Not
 
(3) 关系运算
== 相等,包括类型
!= 不相等 
>(=)大于(等于)
<(=)小于(等于)
 
(4)位运算(二进制操作)
& 与
|或
^ 异或
<< 左移位 1
>>右移位
 
(5) 赋值运算
= 等于
+(-,*,/)= 加减乘除后等于
 
 
7. go 常用命令
 
go run 快速执行go文件
go build 编译程序 生成二进制可执行文件
go install 安装可执行文件到bin目录
go test 执行单元测试或压力测试 (-bench:运行基准测试 -cover:计算机代码覆盖率 -v:输出详细的测试信息 - -run:指定运行的测试用例)
go env 显示go相关的环境变量
go fmt 格式化源代码
go get 获取远程包并安装,它会自动拉取包的源码,并将其编译并安装到GOPATH 下。(-u:更新依赖 -d:仅下载,不安装 -t:同时下载测试所需的包) 例:go get github.com/example/package
go mod Go模块是Go 1.11版本引入的依赖管理工具,go mod命令用于初始化、管理和修改Go模块。(download:下载依赖的模块 edit:编辑go.mod文件 graph:打印模块依赖图 init:初始化新模块 tidy:整理和移除无用的依赖 vendor:将依赖复制到vendor目录 verify:验证依赖的模块)例:go mod init [模块名]
go vet 检查Go源代码中可能存在的错误、潜在的问题和风格不当的代码
go doc 查看Go程序实体(如包、类型、函数等)的文档
go build-race 编译时启用数据竞争检测,它可以帮助发现并修复并发程序中的竞争条件。
go clean 移除编译生成的文件。(-i 删除安装的包和依赖)
 
 
8. 代码规范以及其他
不强制缩进,单建议保持一致(推荐和python 一样 4个空格)
不要 Tab 和4个空格混用。
不支持隐式数据格式转换