后端与GO|青训营笔记

363 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

1、走进Go语言

(1)go语言特点

高性能,高并发

语法简单、学习曲线平缓

丰富的标准库

完善的工具链

静态链接

快速编译

跨平台

垃圾回收

(2)基本语法

import("fmt") 导入fmt包,在屏幕上输出

变量

var a="a" //可自动推导类型

var b,c int=12

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> 转换成结构体