一、基本概念
fmt.println是Go語言標(biāo)準(zhǔn)庫中的一個函數(shù),是fmt包下的一個輸出函數(shù),它可以依次打印傳入的多個參數(shù),最后一個參數(shù)后面加換行符。fmt中還有其他輸出函數(shù),比如fmt.print、fmt.Printf等,其中fmt.Printf可以進(jìn)行格式化輸出。
下面是一個示例代碼:
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)體類型,需要實現(xiàn)String() 方法。
下面是一個示例代碼:
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)行格式化輸出,格式化字符串中以%開頭的占位符會被后面的參數(shù)依次替換。例如,%v表示按值本身的格式輸出數(shù)據(jù),%d表示輸出一個10進(jìn)制整數(shù),%s表示輸出一個字符串。
下面是一個示例代碼:
package main
import "fmt"
func main() {
str := "hello, world"
num := 123
fmt.Printf("str: %s, num: %d", str, num)
}
四、輸出重定向
除了直接在控制臺輸出,fmt還可以將輸出重定向到其他地方,比如文件或標(biāo)準(zhǔn)錯誤輸出。這可以通過os包中的函數(shù)來實現(xiàn)。
下面是一個示例代碼:
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語言中用于輸出的一個非常重要的包,其中的fmt.Println函數(shù)具有簡單易用、支持多種數(shù)據(jù)類型、支持輸出重定向等特點(diǎn)。同時,fmt包中還有其他輸出函數(shù)和格式化輸出函數(shù),可以滿足不同的需求。