第一个Hello,World
本节我们首先完成一个简单的程序,打开localhost/hellowrld,在网页上显示:Hellow,World From Golang!
创建项目wechatpaygolang
我们的GOPATH设置为d:\godev
,那么我们就在d:\godev\
里面创建wechatpaygolang
文件夹,
我们项目wechatpaygolang
就算创建了,后面关于该项目的代码都要放在这个里面。
创建main函数
在golang里面,main为入口函数,类似java里面的main函数,所以首先为我们的项目wechatpaygolang
实现这个入口
在目录wechatpaygolang
下,创建main.go
文件,实现一下2个函数
func main()
:入口函数,实现对网络端口的监听func rout(w http.ResponseWriter, r *http.Request)
:路由功能,根据不同的url请求进行判断,执行相应的功能package main import ( "fmt" "log" "net/http" ) func rout(w http.ResponseWriter, r *http.Request) { r.ParseForm() path := r.URL.Path fmt.Println(pat) } func main() { fmt.Println("启动服务,监听80端口") http.HandleFunc("/", rout) //设置访问的路由 err := http.ListenAndServe(":80", nil) //设置监听的端口 if err != nil { log.Fatal("ListenAndServe: ", err) } }
到此,我们就完成了一个简单的网页功能,这个程序里面我们会监听80端口,并把对应的url转发到rout
函数处理,这里我们先只是把url打印出来
编译并测试
那么我们测试一下,在当前目录下运行命令:go build
,我们会看到会在当前目录下生成一个
wechatgolang.exe
的可执行文件
在命令行里运行它,然后我们在网页里面打开urllocalhost/helloworld
,会看到下面的效果
实现helloworld
包
上面我们只是实现了80端口的监听,并在控制台打印了访问的url,下来实现对url的处理包helloworld
,golang中把模块称之为包package,可以和java里面的package一个意思
创建hellworld
包,实现:
- 打印出
Hellow,World From golang!
创建文件夹helloworld
,在文件加下创建helloworld.go
package helloworld
import (
"fmt"
"net/http"
)
func HelloWorld(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello,World From Golang!")
}
在package helloworld
里面,我们实现了函数HelloWord
,里面利用http.ResponseWrite
向请求方放打印了Hello,World From Golang!
,如果我们是用网页访问的该函数,那么这行字就该出现在网页上。
到此我们实现打印了Hello,World From Golang!
的package和对应的处理函数,下来我们就要把实现访问localhost/helloword
,调用函数,在网页上打印出这行字
实现网页打印Hello,World From Golang!
在第一步package main
函数里面我们实现了路由的功能rout
函数,那么这里我们就只需要把路由和我们上面实现的函数关联起来,在rout
里面增加一个url判断,路由到我们的实现的package里面对应的功能即可
package main
import (
"fmt"
"log"
"net/http"
)
func rout(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
path := r.URL.Path
fmt.Println(path)
if path == "/helloworld" {
fmt.Println("hello world")
helloworld.HelloWorld(w, r)
}
}
func main() {
fmt.Println("启动服务,监听80端口")
http.HandleFunc("/", rout) //设置访问的路由
err := http.ListenAndServe(":80", nil) //设置监听的端口
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
同样运行go build
,以命令行的方式运行生成的.exe
文件,浏览器里面打开localhost/helloworld
,看到效果如下
总结
golang程序的入口为
package main
里面的固定函数func main
golang开发的模块概念为package,调用函数的方式为
packagenamge.funcname()
为了方便,我们我们都会以package packagename
的称呼方式来是说明我们的使用的package为packagename,对应的文件代码我们都会放在对应的packagename
文件夹下
比方说创建package helloworld
,就表示我们需要在项目wechatpaygolang下,创建一个helloworld文件夹,里面的go文件包名都为package helloworld
,如图
有疑问加站长微信联系(非本文作者)