在Go语言中,我们经常会用到%来进行格式化输出操作,%用法非常灵活,下面我们就来介绍一下golang的%用法及相关知识。
%用法最基本的形式就是用它将变量替换为指定的格式。例如下面代码将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
在%后面的标志可以修改转换规则,从而控制输出的宽度和精度。
例如,我们可以使用%10d将输出宽度设置为10字符(不足使用空格填充)。
i := 100 fmt.Printf("|%10d|\n", i) //输出 | 100|
另外,如果我们想用0来填充宽度不足的输出,可以使用%010d。
i := 100 fmt.Printf("|%010d|\n", i) //输出 |0000000100|
在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
时间的格式化常见格式说明如下:
在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的%用法及相关知识的详细内容。更多信息请关注PHP中文网其他相关文章!