學習,動手實戰,寫作這是最有效的學習方式。買了這個課程,願能節省時間,讓我快速入門,然後進軍程式設計世界的廣闊而深邃的大海。
開發環境
國產linux發行版本deepin,用go mod代替傳統的gopath:
首先要開啟 GO111MODULE,go mod這是go1.11之後官方新發布的特性,你的專案目錄千萬不要建立在GOPATH/src下面,go mod 和 GOPATH是衝突的。
go version # 檢視go的版本 > go env # 檢視當前go的環境 > go env -w GO111MODULE=on # 開啟go mod > go env -w GOPROXY=https://goproxy.io,direct # 配置走代理
在你的專案目錄,直接go mod init projectname 即可,記住go.sum不是鎖檔案,go.sum是一個構建狀態跟蹤檔案。它會記錄當前module所有的頂層和間接依賴,以及這些依賴的校驗和,從而提供一個可以100%復現的構建過程並對構建物件提供安全性的保證。
一個簡單的web程式
,作者在這個教程沒有教會你怎樣使用web框架,go的web框架只是net/http包上包裝了一層。go 沒有類似Spring,Django這種重量級框架,也沒有類似php這各種功能大而全的框架。一切都會引入官方和各種開源包.從最語言最底層的http包搭建一個web系統是最有價值的。
如果你的網路不暢可以透過下面命令快速檢視一個本地web的官網文件
godoc -http=:6060 -play
直接貼上一段程式碼:
package main
import (
"fmt"
"net/http")
func handlerFunc(w http.ResponseWriter, r *http.Request) {
// 設定頭部返回型別
w.Header().Set("Content-Type","text/html;charset=utf-8")
if r.URL.Path == "/" {
fmt.Fprint(w,"<h1>這是部落格首頁</h1>")
}else if r.URL.Path == "/about"{
fmt.Fprint(w,"這是關於我們")
}else{
w.WriteHeader(http.StatusNotFound)
// 設定頭部404狀態碼
fmt.Fprint(w, "<h1>請求頁面未找到404:(</h1>"+
"<p>如有疑惑,請聯絡我們。</p>")
}
}
func main() {
http.HandleFunc("/", handlerFunc)
http.ListenAndServe(":3000", nil)
}
我們用命令go run main.go 或者go build main.go ./main 即可
注意一個命令:go install和go build的區別
安裝編譯後的結果檔案到指定目錄庫原始碼包對應的 .a 檔案會被放置到 pkg 目錄下,命令原始碼包生成的可執行檔案會被放到 GOBIN 目錄,至於還不清楚庫原始碼和命令原始碼的自己看下教程
每次改完就go run main.go 好累 go get -u github.com/cosmtrek/air 安裝air 即可
一個air命令會不斷的監聽你的任何更高
本作品採用《CC 協議》,轉載必須註明作者和本文連結