栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何忽略fmt.Sprintf的其他字段

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何忽略fmt.Sprintf的其他字段

是的,您可以通过切片传递给可变参数

Sprintf
函数的参数来做到这一点:

func TruncatingSprintf(str string, args ...interface{}) (string, error) {    n := strings.Count(str, "%s")    if n > len(args) {        return "", errors.New("Unexpected string:" + str)    }    return fmt.Sprintf(str, args[:n]...), nil}func main() {    tmp_str := "hello %s %s %s"         // don't hesitate to add many %s here    str, err := TruncatingSprintf(tmp_str, "world") // or many arguments here    if err != nil {        fmt.Println(err)        return    }    fmt.Println(str)}

示范1

演示2 (即使%s大于参数,也会输出不同的版本)

但是您通常不使用动态格式的字符串,这是不安全的,并且如果您想接受 任何
字符串,则还应该使此代码适应于您的需求

%%s
。如果您走了这么远,那么您可能应该看看模板(它可以让您使用命名字符串,因此丢失的一个不必是最后一个)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/406486.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号