Go 语言输出文本函数详解


在 Go 语言中,fmt 包提供了多种用于输出文本的函数。这些函数可以输出到标准输出(如控制台)或者返回格式化后的字符串。常用的输出文本函数包括 PrintPrintfPrintlnFprintFprintfFprintlnSprintSprintfSprintln。下面详细介绍这些函数及其用法。

1. PrintPrintfPrintln

这些函数将格式化后的字符串输出到标准输出(通常是控制台)。

Print

Print 函数会输出参数的默认格式,没有添加任何格式化。

package main

import "fmt"

func main() {
    fmt.Print("Hello, ")
    fmt.Print("Go!")
}

输出:

Hello, Go!

Printf

Printf 函数使用格式化动词来格式化字符串,然后输出。

package main

import "fmt"

func main() {
    name := "Alice"
    age := 25
    fmt.Printf("Name: %s, Age: %d\n", name, age)
}

输出:

Name: Alice, Age: 25

Println

Println 函数会输出参数的默认格式,并在结尾添加一个换行符。

package main

import "fmt"

func main() {
    fmt.Println("Hello,")
    fmt.Println("Go!")
}

输出:

Hello,
Go!

2. FprintFprintfFprintln

这些函数将格式化后的字符串输出到指定的 io.Writer,如文件或缓冲区。

Fprint

Fprint 函数会输出参数的默认格式到指定的 io.Writer

package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Fprint(os.Stdout, "Hello, ")
    fmt.Fprint(os.Stdout, "Go!")
}

Fprintf

Fprintf 函数使用格式化动词来格式化字符串,然后输出到指定的 io.Writer

package main

import (
    "fmt"
    "os"
)

func main() {
    name := "Alice"
    age := 25
    fmt.Fprintf(os.Stdout, "Name: %s, Age: %d\n", name, age)
}

Fprintln

Fprintln 函数会输出参数的默认格式到指定的 io.Writer,并在结尾添加一个换行符。

package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Fprintln(os.Stdout, "Hello,")
    fmt.Fprintln(os.Stdout, "Go!")
}

3. SprintSprintfSprintln

这些函数将格式化后的字符串返回,而不是直接输出。

Sprint

Sprint 函数会返回参数的默认格式的字符串。

package main

import "fmt"

func main() {
    s := fmt.Sprint("Hello, ", "Go!")
    fmt.Println(s)
}

输出:

Hello, Go!

Sprintf

Sprintf 函数使用格式化动词来格式化字符串,然后返回。

package main

import "fmt"

func main() {
    name := "Alice"
    age := 25
    s := fmt.Sprintf("Name: %s, Age: %d", name, age)
    fmt.Println(s)
}

输出:

Name: Alice, Age: 25

Sprintln

Sprintln 函数会返回参数的默认格式的字符串,并在结尾添加一个换行符。

package main

import "fmt"

func main() {
    s := fmt.Sprintln("Hello,", "Go!")
    fmt.Println(s)
}

输出:

Hello, Go!

4. 示例总结

以下是一个包含所有上述函数的完整示例:

package main

import (
    "fmt"
    "os"
)

func main() {
    // Print, Printf, Println
    fmt.Print("Print: Hello, Go!\n")
    fmt.Printf("Printf: %s, %d\n", "Alice", 25)
    fmt.Println("Println: Hello, Go!")

    // Fprint, Fprintf, Fprintln
    fmt.Fprint(os.Stdout, "Fprint: Hello, Go!\n")
    fmt.Fprintf(os.Stdout, "Fprintf: %s, %d\n", "Alice", 25)
    fmt.Fprintln(os.Stdout, "Fprintln: Hello, Go!")

    // Sprint, Sprintf, Sprintln
    s1 := fmt.Sprint("Sprint: Hello, Go!")
    s2 := fmt.Sprintf("Sprintf: %s, %d", "Alice", 25)
    s3 := fmt.Sprintln("Sprintln: Hello, Go!")

    fmt.Println(s1)
    fmt.Println(s2)
    fmt.Println(s3)
}

总结

Go 语言的 fmt 包提供了多种用于输出文本的函数,满足不同场景的需求。PrintPrintfPrintln 用于标准输出;FprintFprintfFprintln 用于输出到指定的 io.WriterSprintSprintfSprintln 用于返回格式化后的字符串。通过掌握这些函数,可以灵活地格式化和输出文本内容。


原文链接:codingdict.net