介绍golang的%用法及相关知识

2023-05-14 20:05:06 介绍 用法 相关知识

Go语言中,我们经常会用到%来进行格式化输出操作,%用法非常灵活,下面我们就来介绍一下golang的%用法及相关知识。

  1. 基本用法:

%用法最基本的形式就是用它将变量替换为指定的格式。例如下面代码将i替换为%d,%d表示输出变量i为十进制整数。

i := 100 
fmt.Printf("i = %d\n", i) //输出 i = 100

还可以在%符号后面加上一些标志,从而改变输出格式。例如%f表示浮点数,%.2f表示保留两位小数的浮点数,%s表示字符串

 pi := 3.1415926 
 fmt.Printf("pi = %.2f\n", pi) //输出 pi = 3.14
 str := "hello go" 
 fmt.Printf("str = %s\n", str) //输出 str = hello go
  1. 对齐与填充

在%后面的标志可以修改转换规则,从而控制输出的宽度和精度。

例如,我们可以使用%10d将输出宽度设置为10字符(不足使用空格填充)。

i := 100 
fmt.Printf("|%10d|\n", i) //输出 |       100|

另外,如果我们想用0来填充宽度不足的输出,可以使用%010d。

i := 100 
fmt.Printf("|%010d|\n", i) //输出 |0000000100|
  1. 格式化日期和时间

在golang中,也可以使用%来格式化日期和时间。例如:

t := time.Now() //获取当前时间
fmt.Printf("%04d-%02d-%02d %02d:%02d:%02d\n", t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second())  //输出:2022-04-05 11:42:34

时间的格式化常见格式说明如下:

  • %Y 4位数年份
  • %m 2位数月份
  • %d 2位数天数
  • %H 2位数小时
  • %M 2位数分钟
  • %S 2位数秒数
  1. 自定义格式化

在Go语言中,还可以自定义格式化输出。其中fmt包提供了格式化宽度和精度调整的功能,但是无法自定义格式化输出操作。如果需要自定义格式化输出,可以使用text/template或者html/template。

type Person struct { 
    Name string 
    Age int 
} 

func (p *Person) String() string { 
    return fmt.Sprintf("%s is %d years old.", p.Name, p.Age) 
} 

func main() { 
    p := &Person{"Jack", 23} 
    fmt.Printf("%s\n", p) //输出 Jack is 23 years old.
}

上面的代码定义了一个Person结构体类型,然后为它实现了String()方法,该方法返回指定的格式化输出。

关于%用法,以上就是常见的几种应用场景和技巧,其中还有一些更加高级和灵活的操作,需要大家在日常开发中多多探索和应用。

以上就是介绍golang的%用法及相关知识的详细内容,更多请关注其它相关文章!

相关文章