神奇的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,你会有不同的惊喜。

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2016-07-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小狼的世界

彻底理解Doctype

写了很多年的CSS,但是对于页面中的第一段话从来都是模模糊糊的认识。仿佛是记得,不同doctype模式,就会触发不同的验证级别。实际的编码过程中,貌似遇到过一两...

10410
来自专栏北京马哥教育

22款神奇的Ubuntu软件,帮你的系统成为全场最佳

? 作者:PentonBin 来源: https://www.zhihu.com/question/19811112/answer/132006027 先讲一...

79250
来自专栏用户2442861的专栏

必不可少的Firefox插件

Adblock Plus 去广告,包括youku的开头广告 All-in-One Sidebar 最大的好处就是省去书签栏 NoSquint :用firefo...

80110
来自专栏小白课代表

著名社交软件惊现Bug,删除你的所有好友!

15940
来自专栏Jackson0714

【Discuz】关闭QQ互联插件提示信息:系统繁忙,请稍后再试

14730
来自专栏IMWeb前端团队

flash直播

本文作者:IMWeb ninawu 原文出处:IMWeb社区 未经同意,禁止转载 接触了一段时间的flash直播,无论是腾讯课堂‘数据生成模式’实现的...

56250
来自专栏轮子工厂

有哪些实用且堪称神器的Chrome插件?吐血推荐!!!

相信很多人都在使用 Chrome 浏览器,其流畅的浏览体验得到了不少用户的偏爱,但流畅只是一方面, Chrome 最大的优势还是其支持众多强大好用的扩展程序(E...

4K40
来自专栏崔庆才的专栏

你的 Mac 用对了吗?推荐一些 Mac 上比较好用的软件

最近有一个朋友刚入手了 Mac,准备专门搞开发用,让我给他推荐几款软件,然后我就把我的 Launchpad 截图发给了他,他看到这密密麻麻的软件完全不知所措,如...

57300
来自专栏程序员互动联盟

【专业技术】如何检测USB是否已经插入?

usb是我们现代生活中不可或缺的一个东西,大家平常只要使用电脑,肯定都接触过usb吧。本篇文章对于大部分同学来说并没有实际意义,主要面向想了解USB的一些同学,...

44350
来自专栏Java3y

计算机网络【开山篇】

最近在看相关面经时,发现对于计算机网络的考察还是挺多的。于是就看回这些曾经做过的笔记复习了一下。

17310

扫码关注云+社区

领取腾讯云代金券