奇妙的go語言(開始篇)
【 聲明:版權全部。歡迎轉載,請勿用於商業用途。 聯系信箱:feixiaoxing @163.com】
從前接觸腳本語言不多,可是自從遇到go之後,就開始慢慢喜歡上了這個腳本語言。go語言是google設計,主要用來從事web、server側程序的開發,學習起點低。
一般熟練掌握C、python的朋友花上幾個小時就能夠學會go語言。
a) 安裝環境
鑒於個人主要使用linux進行工作,所以這裏介紹的都是linux下的安裝方式。
centos: sudo yum install golang
ubuntu: sudo apt-get install golang
b) 學習資源
本來學習go語言,最好的學習環境應該是官方站點,可是因為GFW的原因,訪問上還是有一定的困難。所以,建議大家能夠訪問一下coolshell.cn站點,上面有go語言的內容,各自是個go語言(上)、go語言(下)。
c) 書籍
不管是亞馬遜、當當還是京東上面,關於go語言的書籍不是非常多。可是有兩本我認為還是不錯的,一本是謝孟軍的《go web編程》,另外一本是許式偉的《go 語言編程》。
d) 編譯方法
假設須要生成運行文件,輸入go build name.go, 當中name.go表示你須要編譯的那個文件名稱,這時會有一個運行文件生成。
假設你須要馬上看到效果。輸入go run name.go就可以。
e)範例
e.1 add.go
package main import "fmt" func add(a int, b int)(c int) { c = a + b return c } func main() { c := add(1 ,2) fmt.Println(c) }
直接輸入go run add.go就能夠打印效果了。
e.2 簡單webserver
package main import ( "fmt" "net/http" ) func sayHelloName(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "hello, world") } func main() { http.HandleFunc("/", sayHelloName) http.ListenAndServe(":9090", nil) }
這時一個簡單的webserver,首先go run hello.go之後。打開os下的一個browser,輸入http://127.0.0.1:9090,你就會在網頁上看到web的打印了。
e.3 帶有表單處理的webserver
package main import ( "fmt" "html/template" "net/http" ) func sayHelloName(w http.ResponseWriter, r* http.Request) { fmt.Fprintf(w, "hello, world") } func login(w http.ResponseWriter, r* http.Request) { if r.Method == "GET" { t, _ := template.ParseFiles("login.gtpl"); t.Execute(w, nil) } else { r.ParseForm() fmt.Println("username:", r.Form["username"]) fmt.Println("password", r.Form["password"]) } } func main() { http.HandleFunc("/", sayHelloName) http.HandleFunc("/login", login) http.ListenAndServe(":9090", nil) }
上面給出的僅僅是代碼內容,你還須要一個login.gtpl模板文件,
<html> <head> <title> </title> </head> <body> <form action="http://127.0.0.1:9090/login" method="post"> user: <input type="text" name ="username"> pass: <input type="password" name="password"> <input type="submit" value="login"> </form> </body> </html>
運行go代碼之後。試著在瀏覽器下輸入127.0.0.1:9090和127.0.0.1:9090/login,你會有不同的驚喜。
奇妙的go語言(開始篇)