golang

35 阅读2分钟

文章第一句话为“这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天

go特点

1,高性能,高并发
2,语法简单,学习曲线平缓
3,丰富的标准库
4,完善的工具链
5,静态链接
6,快速编译
7,跨平台
8,垃圾回收

go 入门

安装

官网:go.dev/
国内镜像网:studygolang.com/dl
github提速:goproxy.cn/

配置集成开发环境

vs code

基础语法

package main  //文件属于main包的一部分,是入口文件。
import{ //导入了formatch包,目的是向屏幕输入输出字符串,格式化字符串。
    "fmt"
}
func main(){//main函数
    fmt.Println("hello word")
}

编译:
-->go run example/01-hello/main.go\
hello world\
-->go build example/01-hello/main.go\
-->./main

变量

go是强类型语言
字符串是内置类型,可以通过+来拼接
声明变量:var a="initial"或者var b,c int =1,2或者f:=float32(e)
常量:const s string="constant",常量没有确定的类型,是根据上下文来确定\

语句

if else

if 7%2==0{
内容
}

循环:没有while,do-while只有唯一的for

死循环:
for{
内容
}
正常循环:for后的3个可以省略
for j:=7;j<9;j++{
内容
}

switch:case后不需要加break,可以取代if-else

switch a {
    case 1:
        fmt.Println("one")
    case 2:
        fmt.Println("two")
    default:
        fmt.Println("other")
}

数组

var a[5] int
a[4] =100
fmt.Println(a[3],len(a))

切片

s:=make([]string,3)

map

随机
m:=make(map[string]int)
m["one"]=1
fmt.Println(m)
delete(m,"one")

range

遍历。返回两个值,第一个值是索引,第二个是值。
for i,num:=range nums{}

函数

变量类型是后置的。
返回两个值时第一个是真正的返回结果,第二个是错误信息

func add(a int,b int) int{
    return a+b
}

指针

用于对传入信息进行修改。

func add2(n *int){*n+=2}
func main(){add2(&n)}

结构体

type user struct{ name string password string } d.name="wang"

字符串格式化

fmt.Printf("s=%v\n",s)
fmt.Printf("s=%+v\n",s)
fmt.Printf("s=%#v\n",s)

实战