Go语言反射与底层编程深入解析
1. 访问结构体字段标签
在Web服务器中,多数HTTP处理函数的首要任务是将请求参数提取到局部变量中。为了让编写HTTP处理函数更为便捷,我们可以定义一个实用函数 params.Unpack ,它借助结构体字段标签来实现这一目的。
以下是一个使用示例, search 函数是一个HTTP处理函数:
import "gopl.io/ch12/params"
// search implements the /search URL endpoint.
func search(resp http.ResponseWriter, req *http.Request) {
var data struct {
Labels []string `http:"l"`
MaxResults int `http:"max"`
Exact bool `http:"x"`
}
data.MaxResults = 10 // set default
if err := params.Unpack(req, &data); err != nil {
http.Error(resp, err.Error(), http.StatusBadRequest) // 400
return
}
// ...rest of handler...
fmt.Fprintf(resp, "Search:
Go反射与unsafe底层编程详解
超级会员免费看
订阅专栏 解锁全文
6

被折叠的 条评论
为什么被折叠?



