1、环境搭建以及配置

1、环境搭建和配置就不记录了
2、常用命令

  • go run main.go :本地运行命令
  • go build main.go:生成执行文件
  • go install main.go : 生成可执行文件在/bin文件夹内 ,若是文件包则会生成包文件在/pkg内
2、包管理

总结:
1、 一个文件夹可以称为一个包
2、一个文件夹(包)内可以创建多个文件
3、在同一个包内的文件文件中必须制定 包名称相同
包的分类:
1、如果是main包,则必须写一个main函数,此函数就是项目的入口(go build编译会生成一个可执行文件)
2、非main包。用来将代码分类的(go build编译会生成一个包文件)

代码演示:

//入口文件main.go:
package main

import (
	"fmt"
	"mTest/api" //需要先把包导入在使用
)

func main() {
	fmt.Println("这是main")
	add() //同一个包则不需要导入操作,可以直接调用
	api.Apifun()
}

//文件add.go:
package main

import (
	"fmt"
)

func add() {
	fmt.Println("我是Add()")
}

//文件api/api.go:
package api //这是我创建的新包

import (
	"fmt"
)

func Apifun() { //如果该方法需要被别的包调用则方法名首字母需要大写
	fmt.Println("这是apifun")
}

运行后结果:

3、输出

1、内置函数(不推荐使用)

print:不换行 ,println:换行
print("好家伙")
print("好家伙2\n") // \n换行
println("好家伙3")
println("好家伙4")

2、fmt包(go编译器自带包)

fmt.Print("fmt好家伙")
fmt.Print("fmt好家伙2")
fmt.Println("fmt好家伙3")
fmt.Println("fmt好家伙4")

3、扩展:格式化输出

  • %s,占位符用于格式化字符串
  • %d,占位符用于格式化整型
  • %f,十进制小数
  • %.2f,保留小数点后两位(四舍五入)
fmt.Printf("我试试%s%d%f----%.2f", "哎嘿嘿", 34, 1.11, 2.43643)
//输出:我试试哎嘿嘿341.110000----2.44

4、注释
  • 单行注释, //
  • 多行注释, /* */
  • 快捷键:选中代码 然后点击键盘的 【contrl + ?】
5、作用域、变量、常量、iota
  • 变量有作用域之分,每个大括号就是一个作用域,每个作用域中都可定义相关的局部变量。
package main
import "fmt"

var name = "名称"//全局变量
name := "名称"//全局变量不能这样写(:=)

func main() {
	name := "张三"
	if true {
		name := "李四"
		fmt.Println(name)//李四 ,从里往外找
	}
	fmt.Println(name)//张三
}
fmt.Println(name)//名称
  • 在定义多个变量时候,可以通过因式分解的方式进行简化代码。
var (
    name   = "武沛齐"
    age    = 18
    gender string
)
  • 常量:不可被修改的变量
// 定义变量
name := "名称"
name = "222"
fmt.Println(name)
// 定义常量
const age = 98//不能再次修改
fmt.Println(age)
  • 常量之iota
    有序化自动生成计数器 ,注意:只支持const
const (
    n1 = iota
    n2
    n3
)
fmt.Println(n1,n2,n3)//0 1 2

const (
	n1 = iota + 2
	n2
	n3
)
fmt.Println(n1, n2, n3)//2 3 4

const (
	n1 = iota + 2
	_
	n2
	n3
)
fmt.Println(n1, n2, n3)	//2 4 5

6、一些记不住的小知识点
  • go里边声明的变量就一定要用不然会报错,可以把该变量名改成 _ 即可
7、switch
switch 1 + 1 {
case 1://注意:数据类型要一致
	fmt.Println("111")
case 2://进这个
	fmt.Println("2222")
default:
	fmt.Println("3333")
}
8、break、continue
  • break:结束循环
  • continue:结束当前进程进入下一次循环
9、goto

跳跃到指定行,然后执行代码。

aa := 1
if aa == 1 {
	goto aagoto //跳跃到aagoto
}
fmt.Println("bb") //跳过了这行直接到 aagoto 了
aagoto:
fmt.Println("aa")

输出:aa