example:

$ go get github.com/hoisie/mustache

 package main

 import (
"github.com/hoisie/mustache" "bytes"
"fmt"
"strings"
"text/template"
) func FormatByKey(f string, m map[string]interface{}) (string, error) {
var tpl bytes.Buffer
t := template.Must(template.New("").Parse(f))
if err := t.Execute(&tpl, m); err != nil {
return f, err
}
return tpl.String(), nil
} func main() {
// use mustache
m1 := map[string]interface{}{"age": "", "c": "world"}
data := mustache.Render("hello {{c}}, I'm {{age}} years old.\n", m1)
println(data) // use golang native template
m := map[string]interface{}{"name": "John", "age": }
s := "I'm {{.name}}, I'm {{.age}} years old.Hi {{.name}}. Your age is {{.age}}\n"
fmt.Println(FormatByKey(s, m)) //strings.NewReplacer
ss := []string{"{{.name}}", "John", "{{.age}}", ""}
r := strings.NewReplacer(ss...)
fmt.Println(r.Replace(s))
}

$ go run test.go

another example.

 package main

 import (
"fmt"
"strings"
) func main() {
Tprintf("Hello %{Name}s %{Apos}s", map[string]interface{}{"Name": "GoLang", "Apos": "!"})
} func Tprintf(format string, params map[string]interface{}) {
for key, val := range params {
format = strings.Replace(format, "%{"+key+"}s", fmt.Sprintf("%s", val), -)
}
fmt.Printf(format)
}

Named String Formatting

Golang Template is powerful

golang Format string by key.的更多相关文章

  1. Predicate Format String Syntax 与字面量

    字面量: 字符串:单引号或双引号扩起来: %@:系统自动添加,数字则自动去除@(): 无单双引号,系统做数字处理. Single or double quoting variables (or sub ...

  2. 再探Java基础——String.format(String format, Object… args)的使用

    最近看到类似这样的一些代码:String.format("参数%s不能为空", "birthday"); 以前还没用过这功能不知咐意思,后研究了一下,详细讲解如 ...

  3. OD: Format String, SQL Injection, XSS

    Format String 格式化串漏洞 考虑如下的代码: #include<stdio.h> int main() { int a=44,b=77; printf("a=%d, ...

  4. Python TypeError: not enough arguments for format string

    今天使用mysqldb执行query语句的时候,在执行这条语句的时候: select PROJ, DATE_FORMAT(MAX(DATE),'%Y-%m-%') AS MAXDATE, DATE_F ...

  5. String.Format(string, arg0)中sring格式

    复合格式字符串和对象列表将用作支持复合格式设置功能的方法的参数.复合格式字符串由零个或多个固定文本段与一个或多个格式项混和组成.固定文本是所选择的任何字符串,并且每个格式项对应于列表中的一个对象或装箱 ...

  6. Oracle问题之literal does not match format string

    问题: oerr ora 186101861, 00000, "literal does not match format string"// *Cause: Literals i ...

  7. TypeError: format string

    先来看一段Python代码: class Negate: def __init__(self, val): self.val = -val def __repr__(self): return str ...

  8. Windows下 tensorboard出现ValueError:Invalid format string

    Windows下 tensorboard出现ValueError:Invalid format string错误时,是格式错误问题,解决方法参阅我的另一篇博客 https://www.jianshu. ...

  9. String.format(String format, Object... args)方法详解

    很多次见到同事使用这个方法,同时看到https://blog.csdn.net/qq_27298687/article/details/68921934这位仁兄写的非常仔细,我也记录一下,好加深印象. ...

随机推荐

  1. 延期版本webstorm(解决许可证过期,注册,激活,破解,码,支持正版,最新可用)

    很多人都发现 http://idea.lanyus.com/ 不能激活了 很多帖子说的 http://15.idea.lanyus.com/ 之类都用不了了 选择 License server (20 ...

  2. mysql数据库表设计小数类型

    float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效 ...

  3. CSS3实现GIF动画

    来自 dribbble 某位大师的作品,GIF图中一个小女孩抱着一只猫在跑步,非常可爱,动作轻巧,过渡自然.DEMO下载 回到项目需求,要实现类似上图卡通人物跑步动画,分析结果如下: 1.跑步动画可以 ...

  4. 执行字符串或注释代码段的方法(eval、exec、execfile)

    eval:计算字符串中的表达式exec:执行字符串中的语句execfile:用来执行一个文件 需注意的是,exec是一个语句,而eval()和execfile()则是内建built-in函数. 1 2 ...

  5. ubuntu安装python-mysqldb

    前期准备: sudo apt-get install  libmysqld-dev sudo apt-get install libmysqlclient-dev sudo apt-get insta ...

  6. 标准I/O流

    一.标准输入流 标准输入流对象cin,重点掌握的函数 cin.get() //一次只能读取一个字符 cin.get(一个参数) //读一个字符 cin.get(三个参数) //可以读字符串 cin.g ...

  7. C# vs2015单元测试测试资源管理器不显示测试方法

    问题描述:在用VS2015用测试框架NUnit单元测试的时候,测试资源管理器死活不出现测试方法,无法运行单元测试模块 现象如下图: 原因:nunit版本不对应 解决方案:下载nunit3.0及往上的版 ...

  8. C# & ASP.NET Core 入门官方资料汇总

    借助给公司实习生培训事宜,整理了一些微软官方的适合新同学入门的资料,这里分享一下: 工具: Visual Studio 2017 Community 版本下载地址:https://www.visual ...

  9. SQL性能优化前期准备-清除缓存、开启IO统计

    文章来至:https://www.cnblogs.com/Ren_Lei/p/5669662.html 如果需要进行SQl Server下的SQL性能优化,需要准备以下内容: 一.SQL查询分析器设置 ...

  10. plsql连接远程oracle数据库

    1.在oracle安装目录D:\app\Eric\product\11.2.0\dbhome_1\NETWORK\ADMIN找到tnsnames.ora:2.ORCL =(DESCRIPTION = ...