go语言使用中提示%!(NOVERB)的解决方案
码农编程进阶笔记
共 1005字,需浏览 3分钟
·
2023-11-10 12:09
go语言的设计目标是提供一种简单易用的编程语言,同时保持高效性和可扩展性,它支持垃圾回收机制,具有强大的并发编程能力,可以轻松处理大规模的并发任务,Go语言还拥有丰富的标准库和活跃的开发社区,使得开发者能够快速构建出高质量的应用程序.
什么情况下会产生?
var hourPaidSuccessFenzi = decimal.NewFromFloat(10)
var alertName = fmt.Sprintf("支付成功率报警,汇总支付成功率低于%s%", hourPaidSuccessFenzi.String()),
fmt.Println(alertName)
运行结果就会成为:
支付成功率报警,汇总支付成功率低于10%!(NOVERB)
为啥会这样呢?
是因为% 是字符串参与转义的标志符,如 %s, %v, %d等。。。
%!(NOVERB) 的出现是GO语言的一种安全转义机制,怎样避免这样的情况?
// 用双百分号 %% 代替无意义的单百分 % 如:
var hourPaidSuccessFenzi = decimal.NewFromFloat(10)
var alertName = fmt.Sprintf("支付成功率报警,汇总支付成功率低于%s%%", hourPaidSuccessFenzi.String()),
fmt.Println(alertName)
最终运行结果为:
支付成功率报警,汇总支付成功率低于10%
Go语言是一种简洁、高效、并发性强的编程语言,适用于构建可靠的、高性能的软件系统。它具有简单易用的特点,同时保持高效性和可扩展性。Go语言支持垃圾回收机制,具有强大的并发编程能力,可以轻松处理大规模的并发任务。它还拥有丰富的标准库和活跃的开发社区,使得开发者能够快速构建出高质量的应用程序。Go语言的出现为开发者提供了一种新的选择,它在性能和开发效率上都有很大的优势。随着Go语言的不断发展和完善,相信它将在未来的软件开发领域中发挥越来越重要的作用。
评论