使用*printf函数的过程中,难免会有一些使用不当导致的错误,大致有如下类型:

1.错误的类型 例如:fmt.Printf("%d\n","string")

2.使用了未知的verb 例如:fmt.Printf("%z\n","string")

3.太多参数  例如::fmt.Printf("hello","world")

4.太少参数 例如:fmt.Printf("hello %s\n")

5.显式指定的索引参数不存在 例如:fmt.Printf("%[3]",1,2)

6.如果自定义实现的Error和String方法触发了panic

错误情况的处理

所有的错误都以字符串"%!"开始, 如果存在verb标识符 会紧跟一个verb标识符,并以加小括弧的描述结束。

具体例子如下:

type stringExtend stringfunc (s stringExtend) String() string {panic("panic")
}var se stringExtend = "stringExtend"
//错误类型
fmt.Printf("%s\n", 5) // %!s(int=5)
//错误类型
fmt.Printf("%d\n", "string") // %!d(string=string)
//参数太多
fmt.Printf("hello", "world") // hello%!(EXTRA string=world)
//参数太少
fmt.Printf("hello %s\n") // hello %!s(MISSING)
//指定索引参数不存在
fmt.Printf("%[3]d\n", 1, 2) // %!d(BADINDEX)
//触发panic
fmt.Printf("%s\n", se) // %!s(PANIC=String method: panic)
//verb格式不存在
fmt.Printf("%z\n", se) // %!z(main.stringExtend=stringExtend)

golang fmt包格式化verb错误处理相关推荐

  1. golang fmt包中的占位符

    原文地址:https://www.cnblogs.com/qing123/articles/4353353.html golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 s ...

  2. golang fmt包Printf 格式化输出 简介

    Go语言的标准输出流在打印到屏幕时有些参数跟别的语言(比如C#和Java)不同,下面是我整理的一些常用的格式化输入操作. General %v 以默认的方式打印变量的值 %T 打印变量的类型 Inte ...

  3. golang格式化输出-fmt包用法详解

    注意:我在这里给出golang查询关于包的使用的地址:https://godoc.org    声明: 此片文章并非原创,大多数内容都是来自:https://godoc.org/fmt,通过谷歌翻译进 ...

  4. Golang中的格式化输入输出

    Golang中的格式化输入输出 打印输出 在Go语言中有多种输出方式,不同的输出适用场景不同.归纳起来有三种,每种还分为3种方式(原内容.原内容+ln.原内容+f) PrintXX() FprintX ...

  5. golang 理解包导入

    Golang使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java .python等语言相比,这算不上什么创新,但与C传统的include相比,则是显 ...

  6. golang fmt格式“占位符”

    golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. # 定义示例类型和变量 type Human struct { Name string } var peo ...

  7. golang fmt占位符

    golang fmt格式"占位符" golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. 定义示例类型和变量 type Human stru ...

  8. Go Go 简单的很,标准库之 fmt 包的一键入门

    文章目录 ⛳️ 实战场景 Print 系列函数 Fprint 函数 Sprint 函数 Errorf 函数 ⛳️ 格式化占位符 通用部分 整型相关 浮点数与复数 布尔型和指针 ⛳️ 标准输入 fmt. ...

  9. 【golang程序包推荐分享】go-ini、viper、godoc

    [golang程序包推荐&分享]go-ini.viper.godoc 一.go-ini 1.程序包简介 2.下载安装 3.简单使用[截取自官网] 二.viper 1.程序包简介 2.下载安装 ...

  10. Go 学习笔记(64)— Go error.New 创建接口错误对象、fmt.Errorf 创建接口错误对象、errors.Is 和 errors.As

    1. error 接口定义 除用 panic 引发中断性错误外,还可返回 error 类型错误对象来表示函数调用状态.error 接口是 Go 原生内置的类型,它的定义如下: // $GOROOT/s ...

最新文章

  1. 命名空间_python基础 13 类命名空间于对象、实例的命名空间,组合方法
  2. golang 切片 接口_Go编程模式:切片,接口,时间和性能
  3. 【Java】Socket实现的C/S模式半UI多人聊天程序
  4. html页面css代码写在哪里,HTML、CSS代码书写规范
  5. 2G退网 对用户影响几何?
  6. 结合CDIB类,对图像的打开、显示、保存
  7. Python操作wifi进行数据传输
  8. mongodb添加多条数据_mongodb一次能插入多少数据
  9. SuperMap iDesktopX 影像/栅格数据不用导入导出即可分析处理啦!
  10. 2019pro与air怎么选_新款 MacBook Air 和入门级 MacBook Pro 如何选?看完这篇就知道了...
  11. 电脑内存占用过高怎么办 电脑内存占用过高解决方法
  12. 微信小程序7个步骤告诉你怎么投放广告位
  13. 在Linux上安装JDK8-教程
  14. APP自动化测试之录制脚本:3.运行录制的脚本
  15. 软盘是什么_什么是软盘?
  16. springboot安全之整合spring security
  17. 内网渗透-域横向smbwmin明文hash传递
  18. bootmgr能放在Linux分区吗,使用Bootmgr 引导Ubuntu (非wubi安装)
  19. 半路出家当程序员容易吗?怎样才能拿高薪?
  20. 一建实务提分技巧 --简通易证

热门文章

  1. c语言求定积分的程序,C语言求定积分
  2. mysql 查询条件为空则_MySql当查询条件为空时不作为条件查询
  3. Mongoose -查询条件
  4. mapbox/minemap 首屏固定比例尺为1:20
  5. 驰骋计算产业数十年的Wintel联盟开始分崩离析
  6. wincc做皮带动画_wincc 如何做动画
  7. 01.第一章 初等概率论
  8. java如何验证手机号码_java如何校验国际手机号格式
  9. 计算机将会代替老师吗英语范文,英文作文电脑对教育的重要意义
  10. 计算机右键新建显示为空,Win7鼠标右键新建为空这么办 win7电脑右键选项为空白如何解决...