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

时间: 2024-08-14 11:39:56

奇妙的go语言(開始篇)的相关文章

iOS8開始默认语言有变化

[问题] 測试组发现APP在iOS8及以上系统设备上,语言设置为我们不支持的小语种时.APP没有使用默认的英文,而是选择了上一次设置的语言. [分析] 经过研究发现,在iOS8系统開始,在设备语言设置中多出了"首选语言顺序"列表.例如以下图所看到的: 图中最底部给出了一句话"应用程序和站点将使用所支持的排在列表第一位的语言". 哇靠!苹果好狠啊.这句就代表你设置的默认语言使用起来是有前提的. 前提:APP支持的全部语言在此列表中不存在或默认语言排在此列表第一位.那么

C语言必会面试题(3、耶稣有13个门徒,当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,...)

3.耶稣有13个门徒.当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1.2,3.1,2,3.... 凡是报到"3"就退出圈子.最后留在圈子内的人就是出卖耶稣的叛徒.请找出它原来的序号. int a[13] = {1,2,3,4,5,6,7,8,9,10,11,12,13}; int number = 13;//记录当前人数 int count = 0;//1,2,3报数 int i = 0; while (number > 1) { if

给软工大二学生:用行动開始改变

[来信] 贺老师: 您好! 我学的是软件project专业,如今已经大二下学期了.再过一两个月就升大三了.可是回忆这两年来走过的路,迷迷茫茫.浑浑噩噩,整天玩游戏,差点儿没有怎么认真学习过,各种编程语言都是一知半解,数据结构.操作系统什么的也是接近于零的认识.唯一让我认为不难看的是英语.转眼就大三了,我不想再浑浑噩噩下去了.我想从这个暑假開始做一个彻底的蜕变,打算考研.贺老师能给什么建议吗 [回复] "我想从这个暑假開始做一个彻底的蜕变",这就是一个改变的起点,这个"開始&q

iPhone开发【一】从HelloWorld開始

转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/8013553 作者:张燕广 从经典的HelloWorld開始踏入iPhone开发的大门吧! keyword:HelloWorld iPhone IOS 1.打开xcode,选择"Create a New Xcode project" 2.xcode中的project分为两大类,一是IOS,二是Mac OS X,前者是进行iPhone/iPad开发,后者是进行Ma

Linux内核project导论——linux学习和职业曲线(刚開始学习的人,中级,高级都可參考)

Linux世界介绍 给自己定级 门外汉: 不会安装操作系统 不会用虚拟机(安装和使用) 入门级: 熟悉常见的发行版,甚至装过而且能用一些特殊发行版(比如kali)做过一些简单的图形界面的使用. 会一些最基础的命令(比如cd.ps.top.ls.ifconfig等这个级别的) 基础级: 能够使用一些常见的命令(touch.tail.date.find.du.fdisk.less.pidof等这个级别的命令) 图形界面操作的比較熟练.而且能够相应一部分的后台命令. 知道一些经常使用的配置文件的作用(

站点搭建从零開始(七) WordPress站点的完好

1.WordPress站点前后端经常使用语言简单介绍和执行过程 通常一个站点的整个构建过程中须要大量的技术支持,尤其是用到非常多种计算机语言.站点的构建主要分后端和前端两部分,后端代码在server上执行.而前端程序源代码则通过网络传输到用户的浏览器,由浏览器执行.WordPress站点的页面属于动态页面,也就是说页面是程序动态生成的,不同的人.不同一时候刻訪问同一个网址相应的页面,看到的内容是不一样的.和动态页面相对的是静态页面,静态页面的扩展名通常是html.不须要后端语言动态的生成网页.

单片机小白学步系列(十三) 点亮第一个LED——好的開始,成功的一半

前面介绍了非常多概念知识.做了非常多准备工作,从这一节開始,我们正式開始单片机的学习.我们将使用单片机完毕一项非常easy的工作:点亮一个发光二极管(即LED:Light-Emitting Diode). LED简单介绍 先简介一下LED.LED是一种半导体器件,大家事实上对LED并不陌生,各种电器的指示灯.手机键盘灯.LED液晶屏的背光.高亮LED手电筒等,都是通过LED发光的.LED有两种主要用途,一种是作为指示灯:还有一种是照明.照明用的LED一般都是大功率LED,须要较大的电压电流才干正

学英语从背单词開始,但背单词要适可而止

你或许希望一遍又一遍的刷单词,由于-- 1. 依旧认为非常多背过的词记得不够牢 2. 认为单词反复背的次数越多. 英语学得就越好 不知你有没有看过这个微博段子么: 听说,人生最辉煌的一断时间是高考前6个月,这时你上知天体执行原理.下知有机无机反应,前有椭圆双曲线.后有杂交生物圈,外可说英语,内可修古文,求得了数列,说得了马哲...... 如今呢,除了玩手机,废人一个. 的确.问问自己,一元二次方程还会解么.积化和差和差化积还会算么,化学方程式还会配平么? 这些基础的数理知识,经过整个中学阶段高强

iOS runtime探究(二): 从runtime開始深入理解OC消息转发机制

你要知道的runtime都在这里 转载请注明出处 http://blog.csdn.net/u014205968/article/details/67639289 本文主要解说runtime相关知识,从原理到实践.由于包括内容过多分为下面五篇文章详细解说.可自行选择须要了解的方向: 从runtime開始: 理解面向对象的类到面向过程的结构体 从runtime開始: 深入理解OC消息转发机制 从runtime開始: 理解OC的属性property 从runtime開始: 实践Category加入属