一、基本概念
fmt.println是Go語(yǔ)言標(biāo)準(zhǔn)庫(kù)中的一個(gè)函數(shù),是fmt包下的一個(gè)輸出函數(shù),它可以依次打印傳入的多個(gè)參數(shù),最后一個(gè)參數(shù)后面加換行符。fmt中還有其他輸出函數(shù),比如fmt.print、fmt.Printf等,其中fmt.Printf可以進(jìn)行格式化輸出。
下面是一個(gè)示例代碼:
package main
import "fmt"
func main() {
fmt.Println("hello, world")
}
二、多種參數(shù)類型的打印
fmt.Println可以接受多種不同類型的參數(shù),包括字符串、數(shù)值、數(shù)組、切片、字典、結(jié)構(gòu)體等等。不同類型的參數(shù)將按不同的方式進(jìn)行打印,需要注意的是,如果是自定義結(jié)構(gòu)體類型,需要實(shí)現(xiàn)String() 方法。
下面是一個(gè)示例代碼:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func (p Person) String() string {
return fmt.Sprintf("%v (%v years)", p.Name, p.Age)
}
func main() {
str := "hello, world"
num := 123
arr := [3]string{"a", "b", "c"}
sli := []string{"a", "b", "c"}
dict := map[string]int{"a": 1, "b": 2, "c": 3}
per := Person{"Alice", 20}
fmt.Println(str)
fmt.Println(num)
fmt.Println(arr)
fmt.Println(sli)
fmt.Println(dict)
fmt.Println(per)
}
三、格式化輸出
fmt.Printf可以進(jìn)行格式化輸出,格式化字符串中以%開(kāi)頭的占位符會(huì)被后面的參數(shù)依次替換。例如,%v表示按值本身的格式輸出數(shù)據(jù),%d表示輸出一個(gè)10進(jìn)制整數(shù),%s表示輸出一個(gè)字符串。
下面是一個(gè)示例代碼:
package main
import "fmt"
func main() {
str := "hello, world"
num := 123
fmt.Printf("str: %s, num: %d", str, num)
}
四、輸出重定向
除了直接在控制臺(tái)輸出,fmt還可以將輸出重定向到其他地方,比如文件或標(biāo)準(zhǔn)錯(cuò)誤輸出。這可以通過(guò)os包中的函數(shù)來(lái)實(shí)現(xiàn)。
下面是一個(gè)示例代碼:
package main
import (
"fmt"
"os"
)
func main() {
f, _ := os.Create("output.txt")
defer f.Close()
fmt.Fprintf(f, "hello, world")
fmt.Fprintln(os.Stderr, "error message")
}
五、總結(jié)
fmt是Go語(yǔ)言中用于輸出的一個(gè)非常重要的包,其中的fmt.Println函數(shù)具有簡(jiǎn)單易用、支持多種數(shù)據(jù)類型、支持輸出重定向等特點(diǎn)。同時(shí),fmt包中還有其他輸出函數(shù)和格式化輸出函數(shù),可以滿足不同的需求。