go语言中“fmt”所有方法的示例

admin
2024-08-28 / 0 评论 / 41 阅读 / 正在检测是否收录...

在 Go 语言中,fmt包提供了很多格式化输入输出的函数。以下是一些主要函数的示例:

  1. Print系列函数:

    • Print:打印输出,不换行。
    • Println:打印输出,换行。
    • Printf:格式化打印输出。
package main

import "fmt"

func main() {
    fmt.Print("Hello")                       // Hello
    fmt.Println(" World!")                   //  World! 和上面输出在一行
    fmt.Printf("Today is %s\n", "Wednesday") // Today is Wednesday
}
  1. Sprint系列函数:

    • Sprint:返回格式化后的字符串,不换行。
    • Sprintln:返回格式化后的字符串,换行。
    • Sprintf:格式化并返回字符串。
package main

import "fmt"

func main() {
    str := fmt.Sprint("Hello")
    strWithNewLine := fmt.Sprintln(" World!")
    formattedStr := fmt.Sprintf("Today is %s", "Wednesday")

    fmt.Println(str)            // Hello
    fmt.Println(strWithNewLine) // World!
    fmt.Println(formattedStr)   // Today is Wednesday
}
  1. Fprint系列函数:将内容输出到指定的io.Writer。
package main

import (
    "fmt"
    "os"
)

func main() {
    file, err := os.Create("output.txt")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer func(file *os.File) {
        _ = file.Close()
    }(file)

    _, _ = fmt.Fprint(file, "Hello")
    _, _ = fmt.Fprintln(file, " World!")
    _, _ = fmt.Fprintf(file, "Today is %s", "Wednesday")

    // 向标准输出写入
    _, _ = fmt.Fprint(os.Stdout, "Writing to stdout")
}
  1. Errorf:返回一个包含错误信息的error类型。
package main

import "fmt"

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("division by zero")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 0)
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(result)
    }
}
  1. Scan系列函数:从标准输入读取数据。
package main

import "fmt"

func main() {
    var name string
    var age int

    fmt.Print("Enter your name and age: \n")
    _, _ = fmt.Scan(&name, &age)

    fmt.Printf("Hello, %s! You are %d years old.\n", name, age)
}
  1. Sscan系列函数:从字符串中读取数据。
package main

import "fmt"

func main() {
    str := "Alice 25"
    var name string
    var age int

    _, _ = fmt.Sscan(str, &name, &age)

    fmt.Printf("Hello, %s! You are %d years old.\n", name, age)
    // Hello, Alice! You are 25 years old.
}
  1. Fscan系列函数:从io.Reader中读取数据。
package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    file, err := os.Open("input.txt")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer func(file *os.File) {
        _ = file.Close()
    }(file)

    reader := bufio.NewReader(file)

    var name string
    var age int

    _, _ = fmt.Fscan(reader, &name, &age)

    fmt.Printf("Hello, %s! You are %d years old.\n", name, age)
}
0

评论 (0)

取消