Go Printf 中的位置参数?

问题描述 投票:0回答:1

在许多其他现代语言中,“printf”类型工具允许选择参数以按其数字位置替换到格式字符串中,而不仅仅是按它们出现的顺序。例如。在爪哇中:

System.out.printf("This is arg 2 %2$s and this is arg 1 %1$s\n", "first", "second")

产生输出:

This is arg 2 second and this is arg 1 first

我相信 Posix 在某些上下文中甚至指定了这一点,因为本地化通常需要特定于语言的词序。

Go 支持这个功能吗?我已经尝试过明显的格式字符串,但这不起作用。

go printf
1个回答
0
投票

是的,这是可能的,只是位置说明符看起来与您尝试的有点不同;来自文档

在 Printf、Sprintf 和 Fprintf 中,每个格式化动词的默认行为是格式化调用中传递的连续参数。然而,动词前面的符号 [n] 表示第 n 个单索引参数将被格式化。

fmt.Printf("This is arg 2 %[2]s and this is arg 1 %[1]s\n", "first", "second")
// prints 'This is arg 2 second and this is arg 1 first'
© www.soinside.com 2019 - 2024. All rights reserved.