首页  >  文章  >  后端开发  >  如何处理 fmt.Sprintf 中丢失的替换值?

如何处理 fmt.Sprintf 中丢失的替换值?

Barbara Streisand
Barbara Streisand原创
2024-10-31 11:04:01827浏览

How to Handle Missing Replacement Values in fmt.Sprintf?

忽略 fmt.Sprintf 中的多余字段

考虑一个场景,其中 Go 程序处理从命令行输入的字符串并使用 fmt。 Sprintf 生成格式化字符串。如果表示为 tmp_str 的输入包含占位符(例如“%s”)并且未提供随附的替换值,则 fmt.Sprintf 将引发错误并显示消息“EXTRA string=world”,其中“world”是缺少替换。

为了解决此问题并妥善处理输入可能缺少占位符的情况,一种方法是要求命令行用户始终包含“%s”占位符。这确保了即使没有为占位符分配任何值,程序也可以避免出现恐慌。将字符串截断为零长度(如下例所示)将抑制与占位符关联的任何输出:

<code class="go">package main

import "fmt"

func main() {
    tmp_str := "Hello Friends%.0s"
    str := fmt.Sprintf(tmp_str, "")
    fmt.Println(str)
}</code>

输出:

Hello Friends

通过利用此策略,程序可以忽略传递给 fmt.Sprintf 的任何多余替换字段并保持稳定的行为。

以上是如何处理 fmt.Sprintf 中丢失的替换值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn