【 声明:版权所有,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】

从前接触脚本语言不多,但是自从遇到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

package mainimport "fmt"func add(a int, b int)(c int) {c =  a + breturn c
}func main() {c := add(1 ,2)fmt.Println(c)}

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

e.2 简单web服务器,可以用作webapi接口使用

package mainimport ("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)}

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

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

package mainimport ("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语言(开始篇)相关推荐

  1. C语言复习篇之数组与指针

    C语言复习篇之数组与指针 学习了一段时间的嵌入式linux了,学习中有很多的东西需要总结,有经验有教训,我觉得把他写下来会更好,就当做是一种笔记的形式,记录学习中的点点滴滴,不仅仅自己可以经常复习,也 ...

  2. 【C/C++语言入门篇】-- 文件操作

    [C/C++语言入门篇]-- 文件操作 收藏 此文于2010-03-09被推荐到CSDN首页 如何被推荐? 最近实在是太忙了,这篇整整就推迟了1个月了,实在是对不起.之前本打算这个模块就结束了,文件操 ...

  3. 自学c语言后的感受,C语言感触篇:十年之后重学C语言,岁月蹉跎,我听闻你始终一个人...

    C语言感触篇:十年之后重学C语言,岁月蹉跎,我听闻你始终一个人 我只是C粉 1.1 多次自学,不得其法 距离大学时学习C语言已有十个年头了.印象里最深的就是当时一位海归老师,在讲课时流露出对K& ...

  4. 用Visual Studio Code Debug世界上最好的语言(Mac篇)

    用Visual Studio Code Debug世界上最好的语言(Mac篇) 首先,你要有台Macbook Pro,接着才继续看这个教程. PS:Windows用户看这里用Visual Studio ...

  5. c语言 bool_程序的数据要放到哪里呢?|C语言第二篇

    在C语言第一篇里我写到了编译器,在这里补充一个点,文本编辑器,编译器,IDE(集成开发环境)的区别. 文本编辑器是用作编写普通文字的应用软件,如window的记事本,atom,sublime,它常用来 ...

  6. c 语言比较三个字符串,C语言字符篇(三)字符串比较函数

    C语言字符篇(三)字符串比较函数 #include int strcmp(const char *s1, const char *s2);    比较字符串s1和s2 int strncmp(cons ...

  7. 明解C语言入门篇_第12章_结构体

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  8. 明解C语言入门篇_第9章_字符串的基本知识

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  9. 明解C语言入门篇_第8章_动手编写各种程序吧

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  10. 明解C语言入门篇_第10章_指针

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

最新文章

  1. 超全的设计模式简介(45种)
  2. IDEA项目搭建七——使用Feign简化消费者端操作
  3. 考研数学一历年真题小题(选择填空)整理
  4. @Configuration 和 @Bean
  5. Showdoc 搭建项目 API 文档系统
  6. 中文python笔记_Python学习笔记-基础篇
  7. Android官方开发文档Training系列课程中文版:添加ActionBar之ActionBar浮层效果
  8. TestCase / test plan / test case
  9. 7. memcache 细节
  10. bash脚本编程之十 函数
  11. AS 更新项目gradle方法
  12. Ubunt_配置_tftp(文件传输)
  13. 微信开通检测工具使用小诀窍
  14. 华为 荣耀 等手机解锁BootLoader
  15. 2022-2028年中国沉香行业发展模式分析及投资趋势预测报告
  16. 【仿美团点餐App】—— 首页(一)
  17. 我们正在努力; 具备人工智能的测试机器人
  18. 技术面常见问题(持续更新)
  19. SSMS18.9.1证书被颁发者直接吊销
  20. hadoop启动命令 start-all.sh提示Permission denied问题解决

热门文章

  1. webpack----entry
  2. 隐藏或者修改nginx信息
  3. 使用skin++进行MFC界面美化范例
  4. 在ecshop商品详情页显示供货商
  5. mysql dba系统学习(8)查询日志文件功能
  6. RAX,eax,ax,ah,al 关系
  7. ASP.NET生成静态页面的简单实现
  8. 拖动布局之保存布局页面
  9. 事件 ID 1505,1508
  10. BOM(浏览器对象模型)