初步go语言入门|青训营

57 阅读2分钟

青训营学习第一次时,今天根据课程,完成了对Go语言的简单入门,感觉还是很优雅的!

也跟着老师学了一天,觉得还是很有收获的,简单分享一下自己的学习。

正文

分享自己的体会吧,觉得Go语言新潮,写起来很文雅

就分享分享今天学习的总结吧

1 HelloWorld

每个语言都有自己的HelloWorld

go

package main  
  
import "fmt"  
  
func main() {  
    fmt.Println("HelloWorld!")  
}

运行后,就会出现HelloWorld

image.png

2 神秘数字,猜数游戏

一开始生成一个随机数,然后根据用户的输入,提示用户输入的数字是大还是小

最终用户输入正确后,结束进程

go
复制代码
    maxNumber := 200  
    secretNumber := rand.Intn(maxNumber)  

3 字典

学习到了,结构体的创建以及使用,可以类比于对象这个概念

go
复制代码
    // DictRequest 字典请求对象  
    type DictRequest struct {  
        TransType string `json:"trans_type"`  
        Source string `json:"source"`  
    }

序列化对象

go
复制代码
    request := DictRequest{TransType: "en2zh", Source: word}  
    //这里json解析后,返回的是一个字节数组  
    buf, e := json.Marshal(request)

反序列化对象

go
复制代码

    //先定义一个对象  
    var dictResponse DictResponse  
    //对bodyText进行反序列化,注意这里需要加上&才能进行赋值  
    err = json.Unmarshal(bodyText, &dictResponse)  
    if err != nil {  
        log.Fatal("json反序列化出错")  
    }

发送请求

go
复制代码
//创建client
client := &http.Client{}

构建Request对象

go
复制代码
req, err := http.NewRequest("POST", "https://api.interpreter.caiyunai.com/v1/dict", data)  
if err != nil {  
    log.Fatal(err)  
}

关闭流,从流中读取body

go
复制代码
defer resp.Body.Close()
bodyText, err := io.ReadAll(resp.Body)  
if err != nil {  
    log.Fatal(err)  
}

循环中遍历元素

_, item第一个是下标,可以用_代替

go
复制代码
//打印翻译的详情,
for _, item := range dictResponse.Dictionary.Explanations {  
    fmt.Println(item)  
}

4 总结

概括一下,今天真的收获很多,看到开启一个子线程是如此的简单,仅需要一个go就可以实现,作为第一天接触go语言的初学者,对今天学的还是有点吃力,加油加油!