Golang学习笔记 - 标准库"net/http"的简析及自制简单路由框架

原文链接:http://targetliu.com/golang-http-router/ 还是在继续学习Go的路上,曾经在使用PHP的时候吃过过度依赖框架的亏。现在学习Go的时候决定先打好基础,从标准库学起走。 源码分析 我们知道最简单的建立http服务器代码基本上都是这样的: http.HandleFunc('/', func(w http.ResponseWriter, r *http.Request){ fmt.Fprint(w, "Hello world") }) http.Liste...阅读全文

2016年09月01日发布 Target_Liu
阅读:1083 评论:0

golang进阶(四)——路由mux的最佳实践

前言 为了让golang的路由更加清晰,让路由的代码可读性更好,我们采用mux包去实现路由,并且在原有功能上做了精简 该系列文章所有代码放在这里 开始 所需的包github.com/gorilla/mux 我们在启动http服务时设置一下路由的配置方法 func startHttp() { if err := http.ListenAndServe(":9090", api.NewAPIMux()); err != nil { log.Fatal("ListenAndServe: ", err)...阅读全文

2017年10月30日 17:17:32 lastsweetop
阅读:4604 评论:0

Go defer实现原理剖析

1. 前言defer语句用于延迟函数的调用,每次defer都会把一个函数压入栈中,函数返回前再把延迟的函数取出并执行。为了方便描述,我们把创建defer的函数称为主函数,defer语句后面的函数称为延迟函数。延迟函数可能有输入参数,这些参数可能来源于定义defer的函数,延迟函数也可能引用主函数用于返回的变量,也就是说延迟函数可能会影响主函数的一些行为,这些场景下,如果不了解defer的规则很容易出错。其实官方说明的defer的三个原则很清楚,本节试图汇总defer的使用场景并做简单说明。2. ...阅读全文

2018-11-07 16:57:05 萤火的萤
阅读:4185 评论:2