这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记
基础语法
Helloworld
package main
import "fmt"
func main() {
fmt.Println("Helloworld")
}
Go是一门静态编译语言。Go语言提供的工具都通过一个单独的命令go调用,go命令有一系列子命令。最简单的一个子命令就是run。这个命令编译一个或多个以.go结尾的源文件,链接库文件,并运行最终生成的可执行文件。(用$表示命令行提示符。)
$ go run helloworld.go
变量
var声明语句可以创建一个特定类型的变量,然后给变量附加一个名字,并且设置变量的初始值。变量声明的一般语法如下:
var 变量名字 类型 = 表达式
常量就是把var改成const,根据使用的上下文自动确定类型
在函数内部,有一种称为简短变量声明语句的形式可用于声明和初始化局部变量。它以“名字 := 表达式”形式声明变量,变量的类型根据表达式来自动推导。
i:=100
切片(slice)
内置的make函数创建一个指定元素类型、长度和容量的slice。容量部分可以省略,在这种情况下,容量将等于长度。
make([]T, len)
make([]T, len, cap) // same as make([]T, cap)[:len]
在底层,make创建了一个匿名的数组变量,然后返回一个slice;只有通过返回的slice才能引用底层匿名的数组变量。在第一种语句中,slice是整个数组的view。在第二个语句中,slice只引用了底层数组的前len个元素,但是容量将包含整个的数组。额外的元素是留给未来的增长用的
append函数用于向slice追加元素
copy函数可以方便地将一个slice复制另一个相同类型的slice
Map
内置的make函数可以创建一个map:
ages := make(map[string]int)
使用内置的delete函数可以删除元素:
delete(ages, "a")
在线词典
抓包:network中dict中的preview
代码生成:copy as cURL,然后通过网址 culcinverter.com 生成
生成代码解读:
req,err:=http.NewRequest("POST","https://api.interpreter.caiyunai.com/v1/dict",data) 创建请求
req.Header.Set("Connection","keep-alive")设置请求头
resq,err := client.Do(req)发起请求
bodyText,err := ioutil.ReadAll(resp.Body)读取相应