这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记
Go语言的特点
特殊的变量声明方式
定义变量时,类型位于变量之后
若不写变量类型,Go语言会自动判断变量的类型
Go中常量无确定类型,使用 const 会根据上下文自动判断类型
var a int // 如果没有赋值,默认为0
var a int = 1 // 声明时赋值
var a = 1 // 声明时赋值
a := 1 //更简洁的声明方式
const h = 50000
特殊的条件判断语句
与C++不同,Go语言中 if 语句中的内容不可以与 if 放在同一行,并且, if 与 { 必须位于同一行,同时 if 中的条件判断语句不需要添加括号
赋值语句可以放在 if 的后面
if age < 18{
fmt.Printf("Kid")
} else {
fmt.Printf("Adult")
}
//可以简化为
if age := 18; age < 18 {
fmt.Printf("Kid")
} else {
fmt.Printf("Adult")
}
循环语句
在GoLang中只存在 for 循环语句
switch语句
与C++不同,Go中的switch分支语句在遇到匹配的case之后会自动跳出,如果需要继续执行,需要使用 fallthrough
切片
Go语言中可以使用append为切片扩容,但必须要返回到原来的切片
Go语言有着和Python类似的切片操作,s[2:5]是左闭右开区间,输出第2到4个元素,不输出第5个元素
s := make([]string, 3)
s = append(s, "d")
fmt.Println(s[2:5])
Go语言项目实践
猜谜游戏
package main
import (
"fmt"
"math/rand"
)
func main() {
maxNum := 100
secretNumber := rand.Intn(maxNum)
fmt.Println("The secret number is ", secretNumber)
}
多次运行程序,输出的数字相同
在使用rand时,需要设立随机数种子,在设立后,常用的方法是使用时间戳初始化随机数
使用时间戳需要加上time库
windows系统中,需要在\n前加上\r,负责会被判定为无效输入
input = strings.TrimSuffix(input, "\r\n")
加入循环结构,实现多次猜测
在线词典
在翻译网站中右键检查,调出检查面板,进行翻译操作后, 在network中寻找dict,并确定Request Method为POST
复制curl请求,在终端中输入,得到json,通过curlconverter.com/#go进行代码转换
将转换出的代码复制进编辑器,将出现错误的代码删除
解析response body
总结
在进行在线的程序设计时,使用网页检查工具导出所用功能的json,将其转化为golang的代码,在编辑器内调试
对状态码进行判断,如果出错,将返回状态码与返回的报文打印出来