GO语言学习1 | 青训营笔记

138 阅读1分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记

所学知识:

  • 基本语法
  • 结构体用法
  • 常用api,如获取时间戳:Unix方法;json序列化与反序列化:Marshal与Unmarshal方法等等

go语言案例--调用翻译api:

1. 编写请求结构体,结构体内容与请求内容一致

image.png image.png

2.编写响应结构体

复制响应参数到网址:JSON转Golang Struct - 在线工具 - OKTools image.png image.png

3.编写查询方法

复制cURL(bash)到网址Convert curl commands to code (curlconverter.com) image.png image.png

- 自定义传入参数

request := DictRequestHS{Language: "en", Text: word}
buf, err := json.Marshal(request)
if err != nil {
   log.Fatal(err)
}
var data = bytes.NewReader(buf)

image.png

- 自定义输出

if resp.StatusCode != 200 {
   log.Fatal("bad StatusCode:", resp.StatusCode, "body", string(bodyText))
}
var dictResponse DictResponseHS
err = json.Unmarshal(bodyText, &dictResponse)
if err != nil {
   log.Fatal(err)
}

for _, item := range dictResponse.Words {
   for _, item2 := range item.PosList {
      for _, item3 := range item2.Explanations {
         fmt.Println(item3.Text)
      }
   }
}

image.png

学习中遇到的问题:

1. Invalid input. Please enter an integer value。输入时的数据末尾为"\r\n",但是后面切割数据时只对"\n"进行了切分,因此不正确。

解决方法: 打上断点进行debug image.png

2. 数据字典实验中选择url不起作用,修改为下列的url

image.png

3. 运行完代理服务器后无反应

解决方法: 下载netcet,并配置好环境,切换终端进行调试。 image.png

心得体会:

go语言相较于Java更加简洁,因此开发会更轻松简单,希望能够更快上手go语言。