这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
1、走进Go语言
(1)go语言特点
高性能,高并发
语法简单、学习曲线平缓
丰富的标准库
完善的工具链
静态链接
快速编译
跨平台
垃圾回收
(2)基本语法
import("fmt") 导入fmt包,在屏幕上输出
变量
var a="a" //可自动推导类型
var b,c int=1,2
f:=float32(e)
循环 只有for
switch
功能更强大,不局限于整数,有时可代替for循环
数组
切片 可变长度的数组
s:=make([]string,3)
s[0]="a" s[2]="b" s[3]="c"
s=append(s,"d") //追加
map 哈希 随机顺序输出
m:=make(map[string]int)
range 遍历
for k,v:=range m{ }
指针 仅用于对函数参数的修改
字符串
fmt.Println(s,n) //打印多个变量并且换行
fmt.Printf("s=%v\n",s) //相当于c中的printf,v可以用于任何类型的变量
fmt.Printf("s=%+v\n",s) //得到更加详细的结构 变量名+值
fmt.Printf("s=%#v\n",s) //更详细加上整个结构体的名称
时间处理
now:=time.Now()或者time.Date()
sub 可以得到两个时间相减的时间段
2、go语言实战案例
(1)猜数字游戏
package main
import(
"fmt"
"math/rand" //随机数
"time" //生成随机数的时间戳
"os" //输入
)
fun main(){
maxNum:=100
rand.Seed(time.Now().UnixNano()) //时间戳
secretNumber:=rand.Intn(maxNum) //生成随机数
reader:=bufo.NewReader(os.Stdin) //读入
}
运用时间戳才能产生随机数,不然编译器只会产生同一个数
(2)在线词典
利用API请求外部链接
copy-><https://curlconverter.com/#go>
翻译成go语言生成response body
<https://oktools.net/json2go>
转换成结构体