golang Format string by key.
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
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 Format string by key.的更多相关文章
- Predicate Format String Syntax 与字面量
字面量: 字符串:单引号或双引号扩起来: %@:系统自动添加,数字则自动去除@(): 无单双引号,系统做数字处理. Single or double quoting variables (or sub ...
- 再探Java基础——String.format(String format, Object… args)的使用
最近看到类似这样的一些代码:String.format("参数%s不能为空", "birthday"); 以前还没用过这功能不知咐意思,后研究了一下,详细讲解如 ...
- OD: Format String, SQL Injection, XSS
Format String 格式化串漏洞 考虑如下的代码: #include<stdio.h> int main() { int a=44,b=77; printf("a=%d, ...
- Python TypeError: not enough arguments for format string
今天使用mysqldb执行query语句的时候,在执行这条语句的时候: select PROJ, DATE_FORMAT(MAX(DATE),'%Y-%m-%') AS MAXDATE, DATE_F ...
- String.Format(string, arg0)中sring格式
复合格式字符串和对象列表将用作支持复合格式设置功能的方法的参数.复合格式字符串由零个或多个固定文本段与一个或多个格式项混和组成.固定文本是所选择的任何字符串,并且每个格式项对应于列表中的一个对象或装箱 ...
- Oracle问题之literal does not match format string
问题: oerr ora 186101861, 00000, "literal does not match format string"// *Cause: Literals i ...
- TypeError: format string
先来看一段Python代码: class Negate: def __init__(self, val): self.val = -val def __repr__(self): return str ...
- Windows下 tensorboard出现ValueError:Invalid format string
Windows下 tensorboard出现ValueError:Invalid format string错误时,是格式错误问题,解决方法参阅我的另一篇博客 https://www.jianshu. ...
- String.format(String format, Object... args)方法详解
很多次见到同事使用这个方法,同时看到https://blog.csdn.net/qq_27298687/article/details/68921934这位仁兄写的非常仔细,我也记录一下,好加深印象. ...
随机推荐
- Ubuntu install mysql database
简要说下ubuntu Linux下安装MySql数据库 一. 安装 # apt-get install mysql-server# apt-get install mysql-client 二.启动 ...
- jmeter4.0 执行jmeter_server.bat报错
Jmeter分布式执行1.-------------------------------Jmeter4.0 执行jmeter_server.bat 报错,是由于4.0要手工生成密钥 bin目录下 ...
- ASP.Net Core 2.2 MVC入门到基本使用系列 (二)(转)
本教程会对基本的.Net Core 进行一个大概的且不会太深入的讲解, 在您看完本系列之后, 能基本甚至熟练的使用.Net Core进行Web开发, 感受到.Net Core的魅力. 本教程知识点大体 ...
- 独立出properties的mybatis连接池
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/java505?useSSL=true&chara ...
- 32.js 判断当前页面是否被浏览
可以通过document.hidden属性判断当前页面是否是激活状态. 兼容性:IE10+,Firefox10+,Chrome14+,Opera12.1+,Safari7.1+ 兼容性写法示例: va ...
- jsp的文件包含漏洞
jsp的文件包含分静态包含的动态包含两种: 静态包含:<%@include file="top.jsp"%> 动态包含:<jsp:include page=&qu ...
- ****************VS编码操作实践******************
下面是今天主要练习的内容: 运用到的内容有 {运算符.强制转换.数据类型的运用.转义字符.变量与常量.基本类型的转换等} 1) 首先我们来看 下列的编码是由三大类组成的 ① 定制变量与常量 蓝色部 ...
- C#学习入门第二篇
4.转义字符\b 退格符\n 换行\r 回车,移到本行开头\t 水平制表符\\ 代表反斜线字符“\“\' 代表一个单引号字符@字在字符串前面表示 ...
- 20171130-2-python orm
https://www.cnblogs.com/pycode/p/mysql-orm.html https://www.cnblogs.com/Hiberniane/archive/2011/01/3 ...
- linux常用系统工作命令
1.echo命令 echo命令用于在终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]”. 2.date命令 date命令用于显示及设置系统的时间或日期,格式为“date [选项 ...