go语言使用中提示%!(NOVERB)的解决方案

码农编程进阶笔记

共 1005字,需浏览 3分钟

 · 2023-11-10

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语言的不断发展和完善,相信它将在未来的软件开发领域中发挥越来越重要的作用。

浏览 67
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报