神奇的go语言(开始篇)

时间:2022-05-05
本文章向大家介绍神奇的go语言(开始篇),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

从前接触脚本语言不多,但是自从遇到go之后,就开始慢慢喜欢上了这个脚本语言。go语言是google设计,主要用来从事web、服务器侧程序的开发,学习起点低。一般熟练掌握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

[cpp] view plain copy

  1. package main
  2. import "fmt"
  3. func add(a int, b int)(c int) {
  4. c = a + b
  5. return c
  6. }
  7. func main() {
  8. c := add(1 ,2)
  9. fmt.Println(c)
  10. }

直接输入go run add.go就可以打印效果了。

e.2 简单web服务器

[cpp] view plain copy

  1. package main
  2. import (
  3. "fmt"
  4. "net/http"
  5. )
  6. func sayHelloName(w http.ResponseWriter, r *http.Request) {
  7. fmt.Fprintf(w, "hello, world")
  8. }
  9. func main() {
  10. http.HandleFunc("/", sayHelloName)
  11. http.ListenAndServe(":9090", nil)
  12. }

这时一个简单的web服务器,首先go run hello.go之后,打开os下的一个browser,输入http://127.0.0.1:9090,你就会在网页上看到web的打印了。

e.3 带有表单处理的web服务器

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] view plain copy 
<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,你会有不同的惊喜。