golang 学习报告
环境配置
操作系统: ubuntu 16.04
用apt-get命令安装: sudo apt-get install golang
golang入门
package main
import "fmt"
func main() {
fmt.Printf("hello world!\n")
}
任何语言第一个程序都是hello world,从hello world程序开始分析:
第一行:go语言编写的文件都是以package <…>开头的,对于独立运行的执行文件,则开头必须为package main
第二行:导入库,将fmt包加入main。
最后几行:主函数,通过调用fmt包的函数,将“hello world”打印到屏幕。
编译运行:
编译 go build filename
编译并运行 go run filename
用golang的http包建立服务器
代码如下:
package main
import (
"fmt"
"net/http"
"strings"
"log"
)
func sayhelloName(w http.ResponseWriter, r *http.Request) {
r.ParseForm() //解析参数
fmt.Println(r.Form) //输出到服务器端的打印信息
fmt.Println("path", r.URL.Path)
fmt.Println("scheme", r.URL.Scheme)
fmt.Println(r.Form["url_long"])
for k, v := range r.Form {
fmt.Println("key:", k)
fmt.Println("val:", strings.Join(v, ""))
}
fmt.Fprintf(w, "Hello Wrold!") //这个写入到w的是输出到客户端的
}
func main() {
http.HandleFunc("/", sayhelloName) //设置访问的路由
err := http.ListenAndServe(":8000", nil) //设置监听的端口
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
编译并运行,然后在浏览器中输入地址:localhost:8000,成功访问到服务器
尝试加入参数:http://localhost:9090/?url_long=111&url_long=222
服务端解析:
实现简单文件服务器
package main
import (
"fmt"
"net/http"
)
func main() {
http.Handle("/", http.FileServer(http.Dir("./")))
e := http.ListenAndServe(":8080", nil)
fmt.Println(e)
}