如果❤️我的文章有帮助,欢迎点赞、关注。这是对我继续技术创作最大的鼓励。更多往期文章在我的个人博客
Golang fmt 标准包 功能类似于C语言printf 实现了格式化I/O获取、输出。
源自C语言的实现但Golang的使用起来更简单,功能主要分为 输出内容 和 获取输入 两大部分。
获取输入 已经在 Golang fmt.Scan 获取输入 详细讲述过,这里就不再纠结。接下来具体列举 fmt 向外输出
Golang fmt 标准包提供了几种输出方式如下:
Print() 相关函数会标准化将内容输出到系统,区别在于:
- Print() 直接输出内容,语法如下:
    func Print(a …interface{}) (n int, err error) 
- Printf() 支持输出格式化字符串,语法如下:
    func Printf(format string, a …interface{}) (n int, err error) 
- Println() 在输出内容的结束后换行,语法如下:
    func Println(a …interface{}) (n int, err error) 
具体例子:
package main
import (
	"fmt"
)
func main() {
    fmt.Print("在命令行打印该信息。")
    name := "Go语言"
    fmt.Printf("我是:%s\n", name)
    fmt.Println("在命令行打印单独一行显示")
}
/**
执行代码输出:
    在命令行打印该信息。我是:Go语言
    在命令行打印单独一行显示
*/
Fprint
Fprint() 相关函数会把内容输出到 io.Writer接口类型 的变量中,常用于打印日志到文件中。
区别在于:
- Fprint() 直接输出内容输出到变量中,语法如下:
    func Fprint(w io.Writer, a …interface{}) (n int, err error) 
- Fprintf() 根据规格格式化内容输出到变量中,语法如下:
    func Fprintf(w io.Writer, format string, a …interface{}) (n int, err error) 
- Fprintln() 输出内容的末尾添加换行符输出到变量中,语法如下:
    func Fprintln(w io.Writer, a …interface{}) (n int, err error) 
具体例子:
package main
import (
	"fmt"
)
func main() {
    fmt.Fprintln(os.Stdout, "标准输出内容到文件")
    fileObj, err := os.OpenFile("./xx.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
    if err != nil {
        fmt.Println("打开文件出错,err:", err)
        return
    }
    name := "Go语言"
    // 向文件句柄中写入内容, 注意,只有满足io.Writer接口的类型才支持写入。
    fmt.Fprintf(fileObj, "往文件写入信息:%s", name)
}
/**
执行代码输出内容到文件 xx.txt:
    往文件写入信息:Go语言
*/
Sprint
Sprint() 相关函数会把传入的数据生成并返回一个字符串,常用语格式化字符串,如:大段文字中替换对应变量。
区别在于:
- Sprint() 直接返回内容,语法如下:
    func Sprint(a …interface{}) string 
- Sprintf() 根据格式格式化内容并返回,语法如下:
    func Sprintf(format string, a …interface{}) string 
- Sprintln() 根据格式格式化内容结尾添加换行符,语法如下:
    func Sprintln(a …interface{}) string 
具体例子:
package main
import (
	"fmt"
)
func main() {
    s1 := fmt.Sprint("Go语言")
    name := "Go语言"
    age := 18
    s2 := fmt.Sprintf("name:%s,age:%d", name, age)
    s3 := fmt.Sprintln("Go语言")
    fmt.Println(s1, s2, s3)
}
/** 
执行代码输出内容
    Go语言 name:Go语言,age:18 Go语言
*/
