[Go實戰]第三章-開始編碼-筆記

雨醉風塵發表於2021-02-16

一. godoc 使用

1:安裝 godoc 命令:go get golang.org/x/tools/cmd/godoc
2:執行 godoc 命令:godoc --http=:6060
3:瀏覽器訪問:localhost:6060

mac環境下如果執行上面?的安裝命令後命令列中依然後提示 command not found: godoc, 這是因為下載的godoc 被安裝到了 $GOPATH 下的bin中,需要手動建立軟連線?: ln -s $GOPATH/bin/godoc Usr/local/bin/godoc

二. Go自動過載元件 air 使用

1:設定 goproxy 國內代理:go env -w GOPROXY=https://goproxy.cn
2:安裝 air 元件:go get -u github.com/cosmtrek/air

如果只為當前命令啟用 Go Module,則使用命令 GO111MODULE=on go get -u github.com/cosmtrek/air

3:檢測air 是否安裝成功:air -v。如果執行此命令後提示 command not found: air。 進入到 $GOPATH/bin目錄下,看是否存在 air。如果存在,則建立軟連線:ln -s $GOPATH/bin/air Usr/local/bin/air

4:在專案目錄下的命令列中執行 air

三. main.go 原始碼

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
        requestPath := request.URL.Path
        var content string
        if requestPath == "/" {
            content = "<h1>Hello this is Golang!</h1>"
        } else if requestPath == "/about" {
            content = "<h1>this is about page :)?haha</h1>"
        } else {
            content = "<h1>404, this page is not found</h1>"
            writer.WriteHeader(http.StatusNotFound)
        }
        writer.Header().Set("Content-Type", "text/html; charset=utf-8")
        writer.WriteHeader(http.StatusOK)
        writer.Write([]byte(requestPath + "\n"))
        writer.Write([]byte(content))
    })
    http.HandleFunc("/page", HandlePage)

    http.ListenAndServe(":3030", nil)
}

func HandlePage(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintln(w, r.Header.Get("User-Agent"))
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章