国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Go 語言的實戰(zhàn)案例 | 青訓營

這篇具有很好參考價值的文章主要介紹了Go 語言的實戰(zhàn)案例 | 青訓營。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Powered by:NEFU AB-IN

Go 語言的實戰(zhàn)案例 | 青訓營

  • GO語言工程實踐課后作業(yè):實現(xiàn)思路、代碼以及路徑記錄

Go補充簡介

在計算機編程領(lǐng)域,Go 語言(也稱為 Golang)正逐漸成為越來越受歡迎的選擇。它是一門由 Google 開發(fā)的開源編程語言,以其簡潔性、高效性和強大的并發(fā)支持而聞名。Go 語言的設(shè)計目標是提供一種簡單易學、高效可靠的編程語言,同時具備 面向?qū)ο蠛秃瘮?shù)式編程的特性。
Go 語言的實戰(zhàn)案例是一個很好的方式來了解和掌握這門語言的基礎(chǔ)知識。通過實際的應用場景和案例,我們可以更深入地了解 Go 語言的特點、語法和最佳實踐。下面我將分享一些關(guān)于走進 Go 語言基礎(chǔ)語言的實戰(zhàn)案例的筆記。

并發(fā)編程: Go 語言在并發(fā)編程方面有著獨特的優(yōu)勢。通過 Goroutine 和 Channel 的概念,Go 語言使并發(fā)編程變得簡單且高效。實戰(zhàn)案例中,我們可以通過編寫并發(fā)的網(wǎng)絡(luò)爬蟲、并發(fā)處理大量數(shù)據(jù)等任務來體驗 Goroutine 和 Channel 的強大威力。

Web開發(fā): Go 語言具備強大的網(wǎng)絡(luò)編程能力,因此在 Web 開發(fā)領(lǐng)域也有著廣泛的應用。通過實戰(zhàn)案例,我們可以學習如何使用 Go 語言構(gòu)建高性能的 Web 服務器、RESTful API,以及處理請求和響應等常見任務。

數(shù)據(jù)庫操作: Go 語言提供了豐富的數(shù)據(jù)庫操作庫,如標準庫中的 database/sql 包以及第三方的 ORM 框架。實戰(zhàn)案例中,我們可以學習如何使用 Go 語言與各種數(shù)據(jù)庫進行交互,執(zhí)行查詢、插入和更新等操作,并學習如何優(yōu)化數(shù)據(jù)庫操作的性能。

文件處理和系統(tǒng)編程: Go 語言對于文件處理和系統(tǒng)編程也有著良好的支持。實戰(zhàn)案例可以涵蓋文件的讀寫、目錄的遍歷、系統(tǒng)命令的執(zhí)行等方面。這些案例將幫助我們理解 Go 語言在操作系統(tǒng)級別編程時的優(yōu)勢和技巧。

測試和性能優(yōu)化: Go 語言注重代碼質(zhì)量和性能,因此在實戰(zhàn)案例中,測試和性能優(yōu)化也是不可或缺的內(nèi)容。我們可以學習如何編寫單元測試和集成測試,并使用性能分析工具來發(fā)現(xiàn)和改進代碼中的性能瓶頸。

平臺和工具開發(fā): Go 語言本身就是一個非常強大的工具和平臺開發(fā)語言。實戰(zhàn)案例可以涵蓋開發(fā)各種工具、命令行應用、服務器軟件等。我們可以學習如何使用 Go 語言構(gòu)建高效的命令行工具、自定義 HTTP 服務器、消息隊列等應用。

跨平臺開發(fā): Go 語言支持跨平臺編譯,這使得我們可以輕松地在不同操作系統(tǒng)上構(gòu)建和部署應用程序。通過實戰(zhàn)案例,我們可以學習如何使用 Go 語言開發(fā)跨平臺應用,為不同操作系統(tǒng)編譯和交付可執(zhí)行文件。

微服務和分布式系統(tǒng): 微服務和分布式系統(tǒng)是現(xiàn)代軟件開發(fā)中的熱門話題。Go 語言在構(gòu)建微服務和分布式系統(tǒng)方面具有優(yōu)勢,因為它提供了輕量級的協(xié)程和高效的網(wǎng)絡(luò)庫。實戰(zhàn)案例可以涵蓋服務間通信、負載均衡、服務發(fā)現(xiàn)等方面,幫助我們理解和應用微服務架構(gòu)和分布式系統(tǒng)的概念。

通過以上的實戰(zhàn)案例,我們可以全面掌握 Go 語言的基礎(chǔ)語言特性,并了解如何在實際項目中應用它們。同時,實戰(zhàn)案例也能幫助我們熟悉和理解 Go 語言的開發(fā)流程、工具鏈以及最佳實踐。
總結(jié)起來,走進 Go 語言基礎(chǔ)語言的實戰(zhàn)案例是學習和掌握這門語言的重要途徑之一。通過實際的應用場景和案例,我們可以深入理解 Go 語言的特點和優(yōu)勢,掌握其核心語法和常用庫的使用。

猜數(shù)游戲

由于邏輯過于簡單,在此不再贅述

知識點

  • 包管理和導入:在 Go 語言中使用 import 來導入所需的包,比如 fmt、math/rand、os 等。

  • 隨機數(shù)生成:使用 math/rand 包的 rand.Seed()rand.Intn() 函數(shù)來生成隨機整數(shù)。

  • 時間處理:使用 time 包獲取當前時間的納秒級表示,用于初始化隨機數(shù)生成器的種子值。

  • 用戶輸入輸出:使用 bufio 包的 bufio.NewReader()ReadString() 函數(shù)來讀取用戶輸入(即讀取一行),并使用 fmt 包的 Println() 函數(shù)來打印輸出。

  • 字符串處理:使用 strings 包的 Trim() 函數(shù)來處理輸入中的結(jié)尾換行符。

  • 類型轉(zhuǎn)換:使用 strconv 包的 Atoi() 函數(shù)將字符串轉(zhuǎn)換成整數(shù)。

  • 循環(huán):使用 for { ... } 來創(chuàng)建一個無限循環(huán),使得游戲可以持續(xù)進行,直到玩家猜對為止。

  • 條件語句:使用 ifelse if 來根據(jù)玩家猜測和秘密數(shù)字的比較結(jié)果給出相應的提示。

package main

import (
        "bufio"
        "fmt"
        "math/rand"
        "os"
        "time"
)

var (
        in  = bufio.NewReader(os.Stdin)
        out = bufio.NewWriter(os.Stdout)
)

func Read[T any]() T {
        var i T
        fmt.Fscan(in, &i)
        return i
}

func main() {
        defer out.Flush()
        maxNum := 100
        rand.Seed(time.Now().UnixNano())
        secretNumber := rand.Intn(maxNum)
        // fmt.Println("The secret number is ", secretNumber)

        fmt.Println("Please input your guess")
        // reader := bufio.NewReader(os.Stdin)
        for {
                // input, err := reader.ReadString('\n')
                // if err != nil {
                // 	fmt.Println("An error occured while reading input. Please try again", err)
                // 	continue
                // }
                // input = strings.Trim(input, "\r\n")

                // guess, err := strconv.Atoi(input)

                guess := Read[int]()

                fmt.Println("You guess is", guess)
                if guess > secretNumber {
                        fmt.Println("Your guess is bigger than the secret number. Please try again")
                } else if guess < secretNumber {
                        fmt.Println("Your guess is smaller than the secret number. Please try again")
                } else {
                        fmt.Println("Correct, you Legend!")
                        break
                }
        }
}

結(jié)果截圖

Go 語言的實戰(zhàn)案例 | 青訓營,BackEnd,Go,golang,開發(fā)語言,后端

在線詞典項目

  • fanyi.caiyunapp.com/

  • Go 語言的實戰(zhàn)案例 | 青訓營,BackEnd,Go,golang,開發(fā)語言,后端

  • 點擊payload和preview

    Payload是數(shù)據(jù)包中實際傳輸?shù)臄?shù)據(jù)內(nèi)容,而Preview是對Payload的一個預覽或摘要,用于快速了解數(shù)據(jù)包的內(nèi)容。Payload是數(shù)據(jù)的實體,而Preview則是展示給用戶的一個概括或摘要。
    Go 語言的實戰(zhàn)案例 | 青訓營,BackEnd,Go,golang,開發(fā)語言,后端

    Go 語言的實戰(zhàn)案例 | 青訓營,BackEnd,Go,golang,開發(fā)語言,后端

  • 采用wireshark也可實現(xiàn)抓包

    Go 語言的實戰(zhàn)案例 | 青訓營,BackEnd,Go,golang,開發(fā)語言,后端

  • 請求復制 (目的是為了用go來模擬發(fā)送相同的請求)

    • 將請求復制為cURL(bash)是指將一個HTTP請求的參數(shù)、請求頭和URL等信息,以curl命令的形式拷貝到終端中。

    • 復制生成的代碼就是拷貝得到的curl命令,它可以在命令行中直接執(zhí)行,發(fā)送與拷貝的請求相同的HTTP請求。

    • 在給定的示例中,這段代碼表示一個發(fā)送到 https://api.interpreter.caiyunai.com/v1/dict 的HTTP POST請求。請求頭包含多個參數(shù),如authority、accept、accept-language等。請求體中的JSON數(shù)據(jù)為"trans_type":“en2zh"和"source”:“good”。

    • 使用復制生成的代碼,你可以在終端中直接執(zhí)行該命令,從而發(fā)送相同的HTTP請求,并獲取該請求的響應結(jié)果。

    • Curl是一個用于發(fā)送和接收HTTP請求的命令行工具。它支持多種協(xié)議,包括HTTP、HTTPS、FTP、SMTP等,并提供了許多可配置的選項和參數(shù),使用戶可以根據(jù)需要定制和控制HTTP請求的各個方面。Curl可以通過命令行界面直接執(zhí)行,也可以與腳本語言(如bash、Python等)一起使用,從而方便地集成到各種開發(fā)和測試場景中。Curl常用于測試和調(diào)試Web應用程序,以及進行API接口的測試和集成。

    Go 語言的實戰(zhàn)案例 | 青訓營,BackEnd,Go,golang,開發(fā)語言,后端

    curl 'https://api.interpreter.caiyunai.com/v1/dict' \
    -H 'authority: api.interpreter.caiyunai.com' \
    -H 'accept: application/json, text/plain, */*' \
    -H 'accept-language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6' \
    -H 'app-name: xy' \
    -H 'content-type: application/json;charset=UTF-8' \
    -H 'device-id: 313abb19c54ae93fa733afae2f9fca47' \
    -H 'origin: https://fanyi.caiyunapp.com' \
    -H 'os-type: web' \
    -H 'os-version;' \
    -H 'referer: https://fanyi.caiyunapp.com/' \
    -H 'sec-ch-ua: "Not/A)Brand";v="99", "Microsoft Edge";v="115", "Chromium";v="115"' \
    -H 'sec-ch-ua-mobile: ?0' \
    -H 'sec-ch-ua-platform: "Windows"' \
    -H 'sec-fetch-dest: empty' \
    -H 'sec-fetch-mode: cors' \
    -H 'sec-fetch-site: cross-site' \
    -H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203' \
    -H 'x-authorization: token:qgemv4jr1y38jyq6vhvi' \
    --data-raw '{"trans_type":"en2zh","source":"good"}' \
    --compressed
    
  • 代碼生成器 Convert curl to Go (curlconverter.com)

    將curl請求生成go代碼

    strings.NewReader是一個函數(shù),它返回一個實現(xiàn)io.Reader接口的類型strings.Reader。strings.Reader可以用來讀取一個字符串的內(nèi)容。

    io.Reader是一個接口,它定義了一個用于讀取數(shù)據(jù)的方法Read。任何實現(xiàn)了Read方法的類型都可以被稱為io.Reader。這個接口常用于讀取輸入流的數(shù)據(jù),如文件、網(wǎng)絡(luò)連接、字節(jié)數(shù)組等。通過實現(xiàn)io.Reader接口,可以方便地進行讀取操作,比如逐行讀取文件內(nèi)容或按照指定大小讀取數(shù)據(jù)塊。

    Go 語言的實戰(zhàn)案例 | 青訓營,BackEnd,Go,golang,開發(fā)語言,后端

    • 補充說明

      接收一個 io.Reader 類型的參數(shù),可以傳入 os.Stdin,因為 os.Stdin 實現(xiàn)了 io.Reader 接口。

      在Go語言中,io.Reader 是一個接口,它定義了一個讀取數(shù)據(jù)的方法 Read。任何實現(xiàn)了 Read 方法的類型都可以被視為 io.Reader 類型。

      os.Stdin 是一個 os.File 類型的值,而 os.File 類型實現(xiàn)了 Read 方法,因此它也被視為實現(xiàn)了 io.Reader 接口。

     /*
     * @Author: NEFU AB-IN
     * @Date: 2023-08-23 10:35:07
     * @FilePath: \GoTest\5\5.go
     * @LastEditTime: 2023-08-23 11:52:24
     */
    package main
    
    import (
            "fmt"
            "io"
            "log"
            "net/http"
            "strings"
    )
    
    func main() {
            client := &http.Client{} // 創(chuàng)建http client
            var data = strings.NewReader(`{"trans_type":"en2zh","source":"good"}`) // NewReader創(chuàng)建一個從s讀取數(shù)據(jù)的Reader(流)
            req, err := http.NewRequest("POST", "https://api.interpreter.caiyunai.com/v1/dict", data) // 創(chuàng)建請求,data為流(減少發(fā)送的內(nèi)存,流式創(chuàng)建請求)
            if err != nil {
                    log.Fatal(err)
            }
            req.Header.Set("authority", "api.interpreter.caiyunai.com")
            req.Header.Set("accept", "application/json, text/plain, */*")
            req.Header.Set("accept-language", "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6")
            req.Header.Set("app-name", "xy")
            req.Header.Set("content-type", "application/json;charset=UTF-8")
            req.Header.Set("device-id", "313abb19c54ae93fa733afae2f9fca47")
            req.Header.Set("origin", "https://fanyi.caiyunapp.com")
            req.Header.Set("os-type", "web")
            req.Header.Set("os-version", "")
            req.Header.Set("referer", "https://fanyi.caiyunapp.com/")
            req.Header.Set("sec-ch-ua", `"Not/A)Brand";v="99", "Microsoft Edge";v="115", "Chromium";v="115"`)
            req.Header.Set("sec-ch-ua-mobile", "?0")
            req.Header.Set("sec-ch-ua-platform", `"Windows"`)
            req.Header.Set("sec-fetch-dest", "empty")
            req.Header.Set("sec-fetch-mode", "cors")
            req.Header.Set("sec-fetch-site", "cross-site")
            req.Header.Set("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203")
            req.Header.Set("x-authorization", "token:qgemv4jr1y38jyq6vhvi")
            resp, err := client.Do(req) // 發(fā)送請求
            if err != nil {
                    log.Fatal(err)
            }
            defer resp.Body.Close() //  resp.Body 也是個流,為了防止資源泄露,需要手動關(guān)閉流,defer在函數(shù)結(jié)束之后,從下往上觸發(fā)
            bodyText, err := io.ReadAll(resp.Body) // 從流中讀入數(shù)據(jù)
            if err != nil {
                    log.Fatal(err)
            }
            fmt.Printf("%s\n", bodyText) // 打印出JSON字符串
    }
    
  • 構(gòu)造結(jié)構(gòu)體 生成request body(目的是和JSON的字段對應,使得可以序列化

    接收一個普通的 Go 值(例如結(jié)構(gòu)體、切片、映射等),并返回一個字節(jié)切片([]byte)表示 JSON 編碼后的數(shù)據(jù)

    type Dictrequest struct{
       Transtype string `json:"trans_type"`
       Source string `json:"source"`
       UserID string `json:"user_id"`
    }
    
  • 解析 response body

    構(gòu)造結(jié)構(gòu)體,字段和body對應,把得到的JSON數(shù)據(jù)反序列化成結(jié)構(gòu)體

    解決方法:代碼生成工具 JSON轉(zhuǎn)Golang Struct - 在線工具 - OKTools

    將preview的JSON復制過來轉(zhuǎn)換為嵌套
    Go 語言的實戰(zhàn)案例 | 青訓營,BackEnd,Go,golang,開發(fā)語言,后端

    修改如下

    /*
     * @Author: NEFU AB-IN
     * @Date: 2023-08-23 10:35:07
     * @FilePath: \GoTest\5\5.go
     * @LastEditTime: 2023-08-23 12:34:19
     */
    package main
    
    import (
            "encoding/json"
            "fmt"
            "io"
            "log"
            "net/http"
            "strings"
    )
    
    type Dictrequest struct {
            Transtype string `json:"trans_type"`
            Source    string `json:"source"`
            UserID    string `json:"user_id"`
    }
    
    type DictResponse struct {
            Rc   int `json:"rc"`
            Wiki struct {
            } `json:"wiki"`
            Dictionary struct {
                    Prons struct {
                            EnUs string `json:"en-us"`
                            En   string `json:"en"`
                    } `json:"prons"`
                    Explanations []string      `json:"explanations"`
                    Synonym      []string      `json:"synonym"`
                    Antonym      []string      `json:"antonym"`
                    WqxExample   [][]string    `json:"wqx_example"`
                    Entry        string        `json:"entry"`
                    Type         string        `json:"type"`
                    Related      []interface{} `json:"related"`
                    Source       string        `json:"source"`
            } `json:"dictionary"`
    }
    
    func main() {
            client := &http.Client{}
            request := DictRequest{TransType: "en2zh", Source: "good"}
            buf, err := json.Marshal(request)
            if err != nil {
                    log.Fatal(err)
            }
            var data = bytes.NewReader(buf) // 因為JSON解析完是byte數(shù)組,所以改成bytes.NewReader
            req, err := http.NewRequest("POST", "https://api.interpreter.caiyunai.com/v1/dict", data)
    
            if err != nil {
                    log.Fatal(err)
            }
            //client := &http.Client{}
            //var data = strings.NewReader(`{"trans_type":"en2zh","source":"good"}`)
            //req, err := http.NewRequest("POST", "https://api.interpreter.caiyunai.com/v1/dict", data)
            //if err != nil {
            //        log.Fatal(err)
            //}
            req.Header.Set("authority", "api.interpreter.caiyunai.com")
            req.Header.Set("accept", "application/json, text/plain, */*")
            req.Header.Set("accept-language", "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6")
            req.Header.Set("app-name", "xy")
            req.Header.Set("content-type", "application/json;charset=UTF-8")
            req.Header.Set("device-id", "313abb19c54ae93fa733afae2f9fca47")
            req.Header.Set("origin", "https://fanyi.caiyunapp.com")
            req.Header.Set("os-type", "web")
            req.Header.Set("os-version", "")
            req.Header.Set("referer", "https://fanyi.caiyunapp.com/")
            req.Header.Set("sec-ch-ua", `"Not/A)Brand";v="99", "Microsoft Edge";v="115", "Chromium";v="115"`)
            req.Header.Set("sec-ch-ua-mobile", "?0")
            req.Header.Set("sec-ch-ua-platform", `"Windows"`)
            req.Header.Set("sec-fetch-dest", "empty")
            req.Header.Set("sec-fetch-mode", "cors")
            req.Header.Set("sec-fetch-site", "cross-site")
            req.Header.Set("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203")
            req.Header.Set("x-authorization", "token:qgemv4jr1y38jyq6vhvi")
            resp, err := client.Do(req)
            if err != nil {
                    log.Fatal(err)
            }
            defer resp.Body.Close()
            bodyText, err := io.ReadAll(resp.Body) // 返回的byte數(shù)組
            if err != nil {
                    log.Fatal(err)
            }
    
            var dictResponse DictResponse
            err = json.Unmarshal(bodyText, &dictResponse)
            if err != nil {
                    log.Fatal(err)
            }
            fmt.Printf("%#v\n", dictResponse) // 最詳細的打印出來
    }
    
  • 修改代碼(不再固定查詢)

    • 修改 main 函數(shù),編寫簡單的main函數(shù),用于接收用戶輸入的單詞,并調(diào)用query函數(shù)進行查詢。
    • 將代碼主體改成一個query函數(shù),用于查詢單詞的釋義,并通過參數(shù)傳遞要查詢的單詞。
    • 使用for range循環(huán)迭代dictResponse.Dictionary.Explanations,打印出查詢結(jié)果中的釋義部分,即只查詢想要的東西
    • query函數(shù)中增加了對API返回狀態(tài)碼的檢查,如果不是 200 ,會打印錯誤信息并退出程序。

    最終版文章來源地址http://www.zghlxwxcb.cn/news/detail-672870.html

     /*
      * @Author: NEFU AB-IN
      * @Date: 2023-08-23 10:35:07
      * @FilePath: \GoTest\5\5.go
      * @LastEditTime: 2023-08-23 15:20:30
      */
     package main
    
     import (
             "bytes"
             "encoding/json"
             "fmt"
             "io"
             "log"
             "net/http"
             "os"
     )
    
     type DictRequest struct {
             TransType string `json:"trans_type"`
             Source    string `json:"source"`
             UserID    string `json:"user_id"`
     }
    
     type DictResponse struct {
             Rc   int `json:"rc"`
             Wiki struct {
             } `json:"wiki"`
             Dictionary struct {
                     Prons struct {
                             EnUs string `json:"en-us"`
                             En   string `json:"en"`
                     } `json:"prons"`
                     Explanations []string      `json:"explanations"`
                     Synonym      []string      `json:"synonym"`
                     Antonym      []string      `json:"antonym"`
                     WqxExample   [][]string    `json:"wqx_example"`
                     Entry        string        `json:"entry"`
                     Type         string        `json:"type"`
                     Related      []interface{} `json:"related"`
                     Source       string        `json:"source"`
             } `json:"dictionary"`
     }
    
     func main() {
             if len(os.Args) != 2 {
                     fmt.Fprintf(os.Stderr, `usage: simpleDict WORD
     example: simpleDict hello
                     `)
                     os.Exit(1)
             }
             word := os.Args[1]
             // fmt.Println(os.Args[0])
             query(word)
    
     }
    
     func query(word string) {
             client := &http.Client{}
             request := DictRequest{TransType: "en2zh", Source: word}
             buf, err := json.Marshal(request)
             if err != nil {
                     log.Fatal(err)
             }
             var data = bytes.NewReader(buf)
             req, err := http.NewRequest("POST", "https://api.interpreter.caiyunai.com/v1/dict", data)
    
             if err != nil {
                     log.Fatal(err)
             }
             req.Header.Set("authority", "api.interpreter.caiyunai.com")
             req.Header.Set("accept", "application/json, text/plain, */*")
             req.Header.Set("accept-language", "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6")
             req.Header.Set("app-name", "xy")
             req.Header.Set("content-type", "application/json;charset=UTF-8")
             req.Header.Set("device-id", "313abb19c54ae93fa733afae2f9fca47")
             req.Header.Set("origin", "https://fanyi.caiyunapp.com")
             req.Header.Set("os-type", "web")
             req.Header.Set("os-version", "")
             req.Header.Set("referer", "https://fanyi.caiyunapp.com/")
             req.Header.Set("sec-ch-ua", `"Not/A)Brand";v="99", "Microsoft Edge";v="115", "Chromium";v="115"`)
             req.Header.Set("sec-ch-ua-mobile", "?0")
             req.Header.Set("sec-ch-ua-platform", `"Windows"`)
             req.Header.Set("sec-fetch-dest", "empty")
             req.Header.Set("sec-fetch-mode", "cors")
             req.Header.Set("sec-fetch-site", "cross-site")
             req.Header.Set("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203")
             req.Header.Set("x-authorization", "token:qgemv4jr1y38jyq6vhvi")
             resp, err := client.Do(req)
             if err != nil {
                     log.Fatal(err)
             }
             defer resp.Body.Close()
             bodyText, err := io.ReadAll(resp.Body) // 返回的byte數(shù)組
             if err != nil {
                     log.Fatal(err)
             }
    
             // 正確接收
             if resp.StatusCode != 200 {
                     log.Fatal("bad StatusCode:", resp.StatusCode, "body", string(bodyText))
             }
    
             var dictResponse DictResponse
             err = json.Unmarshal(bodyText, &dictResponse)
             if err != nil {
                     log.Fatal(err)
             }
             // fmt.Printf("%#v\n", dictResponse) // 最詳細的打印出來
             fmt.Println(word, "UK:", dictResponse.Dictionary.Prons.En, "US:", dictResponse.Dictionary.Prons.EnUs)
             for _, item := range dictResponse.Dictionary.Explanations {
                     fmt.Println(item)
             }
    
     }
    

到了這里,關(guān)于Go 語言的實戰(zhàn)案例 | 青訓營的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 走進 Go 語言基礎(chǔ)語法 | 青訓營 (1)

    走進 Go 語言基礎(chǔ)語法 | 青訓營 (1)

    Powered by: NEFU AB-IN Go 語言入門指南:基礎(chǔ)語法和常用特性解析 go.mod 這個文件里記錄了當前項目里所有依賴包的 git 倉庫地址以及對應的 版本號 ,來解決了包依賴管理的問題,后續(xù)在構(gòu)建編譯時,就會根據(jù)對應的版本號去拉取依賴包。 注意, 如果當前的項目是要給外部使用的

    2024年02月14日
    瀏覽(29)
  • Go 語言入門指南: 環(huán)境搭建、基礎(chǔ)語法和常用特性解析 | 青訓營

    Go 語言入門指南: 環(huán)境搭建、基礎(chǔ)語法和常用特性解析 | 青訓營

    Go 是一個開源的編程語言,它能讓構(gòu)造簡單、可靠且高效的軟件變得容易。 Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開發(fā),后來還加入了Ian Lance Taylor, Russ Cox等人,并最終于2009年11月開源,在2012年早些時候發(fā)布了Go 1穩(wěn)定版本?,F(xiàn)在Go的開發(fā)已經(jīng)是完全開放的,并且

    2024年02月14日
    瀏覽(24)
  • 【字節(jié)跳動青訓營】后端筆記整理-3 | Go語言工程實踐之測試

    【字節(jié)跳動青訓營】后端筆記整理-3 | Go語言工程實踐之測試

    **本人是第六屆字節(jié)跳動青訓營(后端組)的成員。本文由博主本人整理自該營的日常學習實踐,首發(fā)于稀土掘金:??Go語言工程實踐之測試 | 青訓營 目錄 一、概述 1、回歸測試 2、集成測試 3、單元測試 二、單元測試 1、流程 2、規(guī)則 3、單元測試的例子 4、assert 5、覆蓋率

    2024年02月15日
    瀏覽(28)
  • 【字節(jié)跳動青訓營】后端筆記整理-1 | Go語言入門指南:基礎(chǔ)語法和常用特性解析

    【字節(jié)跳動青訓營】后端筆記整理-1 | Go語言入門指南:基礎(chǔ)語法和常用特性解析

    **本人是第六屆字節(jié)跳動青訓營(后端組)的成員。本文由博主本人整理自該營的日常學習實踐,首發(fā)于稀土掘金:??Go語言入門指南:基礎(chǔ)語法和常用特性解析 | 青訓營 本文主要梳理自 第六屆字節(jié)跳動青訓營(后端組)-Go語言原理與實踐第一節(jié)(王克純老師主講) 。同時

    2024年02月13日
    瀏覽(24)
  • 【字節(jié)跳動青訓營】后端筆記整理-4 | Go框架三件套之GORM的使用

    【字節(jié)跳動青訓營】后端筆記整理-4 | Go框架三件套之GORM的使用

    **本人是第六屆字節(jié)跳動青訓營(后端組)的成員。本文由博主本人整理自該營的日常學習實踐,首發(fā)于稀土掘金。 我的go開發(fā)環(huán)境: *本地IDE:GoLand 2023.1.2 *go:1.20.6 *MySQL:8.0 本文介紹Go框架三件套的使用。 Go 框架三件套通常指的是 GORM、Kitex 和 Hertz,它們分別是 Go 語言中數(shù)

    2024年02月10日
    瀏覽(32)
  • 【字節(jié)跳動青訓營】后端筆記整理-2 | Go實踐記錄:猜謎游戲,在線詞典,Socks5代理服務器

    【字節(jié)跳動青訓營】后端筆記整理-2 | Go實踐記錄:猜謎游戲,在線詞典,Socks5代理服務器

    **本人是第六屆字節(jié)跳動青訓營(后端組)的成員。本文由博主本人整理自該營的日常學習實踐,首發(fā)于稀土掘金:??Go實踐記錄:猜謎游戲,在線詞典,Socks5代理服務器 | 青訓營 我的go開發(fā)環(huán)境: *本地IDE:GoLand 2023.1.2 *go:1.20.6 猜數(shù)字游戲也算是入門一門編程語言必寫的程

    2024年02月13日
    瀏覽(35)
  • 網(wǎng)站常見安全漏洞 | 青訓營

    網(wǎng)站常見安全漏洞 | 青訓營

    Powered by: NEFU AB-IN 網(wǎng)站常見安全漏洞-網(wǎng)站基本組成及漏洞定義 網(wǎng)站常見安全漏洞-服務端漏洞介紹 網(wǎng)站常見安全漏洞-客戶端漏洞介紹 網(wǎng)站常見安全漏洞-總結(jié)及強調(diào)網(wǎng)絡(luò)安全法 網(wǎng)關(guān) 在計算機網(wǎng)絡(luò)中指的是連接兩個不同網(wǎng)絡(luò)或協(xié)議的設(shè)備或系統(tǒng)。它的作用是將傳入的數(shù)據(jù)包從

    2024年02月10日
    瀏覽(16)
  • HTTP 框架修煉之道 | 青訓營

    HTTP 框架修煉之道 | 青訓營

    Powered by: NEFU AB-IN 走進 HTTP 協(xié)議 HTTP 框架的設(shè)計與實現(xiàn) 性能修煉之道與企業(yè)實踐 前后端通過http通信,負責對http請求解析,根據(jù)路由選擇對應邏輯 超文本 通常包括文本、圖像、音頻、視頻等多種媒體類型,這些內(nèi)容通過鏈接與其他相關(guān)信息相互連接。最著名的超文本系統(tǒng)之

    2024年02月11日
    瀏覽(39)
  • 第三屆字節(jié)跳動青訓營——架構(gòu)學習

    架構(gòu)定義:有關(guān)軟件整體結(jié)構(gòu)與組件的抽象描述,用于指導軟件系統(tǒng)各個方面的設(shè)計 常見軟件架構(gòu) 單機:所有功能都實現(xiàn)在一個進程里,進程部署在單臺機器上,運維時需要停服 C10K問題(Concurrent 10,000 Connection):服務器如何支持10K個并發(fā)連接,進行高性能網(wǎng)絡(luò)編程。解決

    2024年01月18日
    瀏覽(30)
  • 大一下暑期計劃 + 2023字節(jié)青訓營預告直播

    大一下暑期計劃 + 2023字節(jié)青訓營預告直播

    目錄 ??前言 ??后端學習方法 ??1,層次 ??2,體系 ??3,算法和數(shù)據(jù)結(jié)構(gòu) ??4,總結(jié) ??前端學習方法 ??基礎(chǔ) ??求職中如何彌補學歷差距? ??項目經(jīng)歷怎么準備? ??官網(wǎng)鏈接 + 簡歷如何寫 ??0基礎(chǔ)可以跟項目嗎 ??主修Java或者C++能不能參加青訓營? ??大一下暑期計劃

    2024年02月11日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包