Golang fmt.Printf()函数及示例

Golang fmt.Printf()函数及示例

在Golang中,fmt.Printf()函数是一个非常常用的函数,该函数可以用来格式化输出字符串、变量等,并且支持格式化占位符,使用非常方便。下面我们来具体了解一下该函数。

函数定义

fmt.Printf(format string, a …interface{}) (n int, err error)

fmt.Printf()函数有两个参数:第一个参数是需要输出的字符串,也就是格式化字符串;第二个参数是可变参数,用于接收需要输出的变量值。该函数最终会输出按照format字符串格式化后的字符串,其中a…interface{}参数表示是一个空接口切片,通过这种方式可以接收不同类型的变量。

通常情况下,我们可以看到fmt.Printf()函数的使用如下:

fmt.Printf("Hello, %s!", "World")

其中第一个参数是格式化字符串”Hello, %s!”,第二个参数是需要格式化替代的变量”World”,%s表示该位置需要替代成字符串变量。

更复杂一些的格式化字符串如下:

fmt.Printf("My name is %s, I'm %d years old, my weight is %.2f kg, I have %d children.", "Tom", 26, 58.5, 0)

其中%s表示字符串变量,%d表示整数变量,%.2f表示保留两位小数的浮点数变量,最后一个%d表示整数变量。

格式化占位符

fmt.Printf()函数支持很多格式化占位符,下面我们来简单介绍一下常用的占位符:

  • %v:根据变量类型,输出该变量的值。
  • %T:输出变量的类型。
  • %t:输出布尔类型变量的值,true或false。
  • %d:输出十进制整数。
  • %b:输出二进制整数。
  • %o:输出八进制整数。
  • %x:输出十六进制整数,使用小写字母。
  • %X:输出十六进制整数,使用大写字母。
  • %f:输出浮点数,保留小数点后6位。
  • %e:输出科学计数法表示的浮点数。
  • %s:输出字符串。
  • %p:输出指针地址。
  • %c:输出字符。

示例代码

下面我们来看一个示例代码,该代码中演示了fmt.Printf()函数的常见用法和各种格式化占位符的使用。

package main

import (
    "fmt"
)

func main() {
    // 格式化输出字符串、整数、浮点数等
    fmt.Printf("Hello, %s! I'm %d years old and my weight is %.2f kg.\n", "Tom", 26, 58.5)

    // 输出各种变量类型及其值
    var x int = 100
    var y float32 = 1.23
    var z string = "Hello"
    fmt.Printf("%v, %v, %v\n", x, y, z)

    // 输出变量类型
    fmt.Printf("%T, %T, %T\n", x, y, z)

    // 输出真假值
    var b bool = true
    fmt.Printf("%t\n", b)

    // 输出进制数
    fmt.Printf("%d, %b, %o, %x, %X\n", x, x, x, x, x)

    // 输出浮点数
    fmt.Printf("%f, %e\n", y, y)

    // 输出指针地址
    fmt.Printf("%p\n", &x)

    // 输出字符
    fmt.Printf("%c, %c, %c\n", 'H', 'e', 'l')
}

运行该程序,输出结果如下:

Hello, Tom! I'm 26 years old and my weight is 58.50 kg.
100, 1.23, Hello
int, float32, string
true
100, 1100100, 144, 64, 64
1.230000, 1.230000e+000

结论

通过上述示例代码的演示,我们可以看到fmt.Printf()函数的使用是非常灵活和方便的,不仅可以用于格式化输出字符串,还可以输出各种类型的变量值,并且还支持很多格式化占位符。因此,在Golang中,fmt.Printf()函数是我们经常使用的一个函数,不仅可以提高代码的可读性和代码的简洁程度,还可以大大减少代码编写的时间成本。在实际开发中,更加深入地学习fmt.Printf()函数的使用是非常有必要的。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程