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这位仁兄写的非常仔细,我也记录一下,好加深印象. ...
随机推荐
- 适用于 Windows 7 SP1、Windows Server 2008 R2 SP1 和 Windows Server 2008 SP2 的 .NET Framework 4.5.2 仅安全更新说明:2017 年 9 月 12 日
https://support.microsoft.com/zh-cn/help/4040960/description-of-the-security-only-update-for-the-net ...
- Go linux 实践4
这是目前学习的最难的Go demo例子 ***************************************** 如果能看懂,你就出师了,我的任务也就结束了 **************** ...
- 自定义Http请求头并且获取
在一些开发需求中.我们需要把一些信息放到Http请求头中.比如我需要把签名信息 signature 放到Http请求头 所以就需要自定义请求头 signature ,用webClient发起请求 我这 ...
- Mysql date,datetime的区别以及相互转换
参考:https://blog.csdn.net/a3025056/article/details/62885104/ 在数据库中一直有这三个时间类型有点搞不太清楚. 今天就来说一下之间的区别,其实是 ...
- C# 如何批量修改集合元素的属性值?
我们往往会遇到要批量修改集合中元素的值,最笨的办法就是foreach循环,但本文介绍几种优雅的方法. 首先,我们准备好元素类和初始集合: 下面就是几种方法,目前并没有对性能做进一步的测试,有兴趣的童鞋 ...
- hbase shell operate
, start hdfs [hadoop@alamps sbin]$ ./start-all.sh This script is Deprecated. Instead use start-dfs.s ...
- python 文件写入错误
在保存网页文字到txt文件下时,出现如下错误 UnicodeEncodeError: 'gbk' codec can't encode character u'\xa9' in position 24 ...
- 深度解读 AlphaGo 算法原理
http://blog.csdn.net/songrotek/article/details/51065143 http://blog.csdn.net/dinosoft/article/detail ...
- 【Hadoop学习之五】win7+Eclipse+hadoop3搭建本机开发环境
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 拓扑: 知识准备: 1.eclip ...
- flask模板应用-消息闪现(flash())
消息闪现 flask提供了一个非常有用的flash()函数,它可以用来“闪现”需要提示给用户的消息,比如当用户登录成功后显示“欢迎回来!”.在视图函数调用flash()函数,传入消息内容,flash( ...