我正在尝试在 Go 中动态创建格式化字符串。这个想法是使用格式类型创建地图。然后循环遍历它们以输出各种类型。
最终结果是查看格式如何影响输出。
(我很欣赏这个例子会产生相同的输出,但我会f随着时间的推移更改为其他类型)
下面是一个例子:
import (
"fmt"
"strings"
)
var formats = []string{"%f", "%v"}
var f float32 = 1 << 24
func main() {
for format := range formats {
// Generate formatting string here
parts := "%q => " + format + "\n"
fmt.Printf(parts, format, f)
}
}
编译器在这一parts:行抱怨 int() 转换:
在第 11 行,文件 ch3/floating_point.go 无法将 "%q => " 转换为类型 int
在第 11 行,文件 ch3/floating_point.go 无效操作:"%q => " + format`(字符串和整数类型不匹配)
我曾尝试加入字符串,但没有运气:
parts:= strings.Join([]string{"%q =>",format,"\n"), " ")
fmt.Printf(parts,format,f)
也fmt.Fprintf没有帮助:
for format := range formats {
// Generate formatting string here
parts := fmt.Fprintf("%q => " + format, format, f)
fmt.Println(parts)
}
阿波罗的战车
慕沐林林
相关分类