一、前言
Go标准库提供了template,其中text/template 提供了基于模板输出文本内容的功能。基于template我们可以很方便的来根据一些元数据动态生成一些桩代码,比如对应开放平台场景,我们可以根据定义api时的元数据来动态生成open-sdk
二、模板使用示例
demo代码如下:
package main
import (
"bytes"
"fmt"
"path"
"strings"
"text/template"
)
// 1.自定义功能函数
var FuncMap = template.FuncMap{}
//2. 添加自定义功能函数
func init() {
//2.1 添加首字符转换为小写的函数
FuncMap["lowerFirst"] = func(s string) string {
if s == "" {
return ""
}
return strings.ToLower(s[:1]) + s[1:]
}
}
// 3. 结构体定义
type Person struct {
Name string
}
type Company struct {
Persons []Person
CompanyName string
}
type Data struct {
Company Company
}
func main() {
//4. 创建入参变量
var persons []Person
persons = append(persons, Person{
Name: "JiaDuo",
})
persons = append(