fmt包接口比较多
介绍一下输出的方法
输出的方法
- fmt.Print(),输出数据,不换行
- fmt.Println(),输出数据,换行
- fmt.Printf(),格式化输出数据
向文件或者标准输出中输出内容 - func Fprint(w io.Writer, a …interface{}) (n int, err error)向w中输出内容
- func Fprintf(w io.Writer, format string, a …interface{}) (n int, err error)向w中格式化输出内容
- func Fprintln(w io.Writer, a …interface{}) (n int, err error)向w中输出内容
func main() {
fmt.Fprintf(os.Stdout , "name :%s" , "xiang")
fmt.Fprint(os.Stdout , "name :", "xiang")
fmt.Fprintln(os.Stdout ,"name : " , "xiang")
}
格式化字符串
- func Sprint(a …interface{}) string 返回字符串,多个数据之间不自动生成空格
- func Sprintf(format string, a …interface{}) string 返回格式化后的字符串
- func Sprintln(a …interface{}) string 返回多个数据生成的字符串,数据之间生成的字符串之间有空格。
func main() {
name := fmt.Sprint("name : " , "xiang")
fmt.Println(name)
name = fmt.Sprintf("name : %s" , "xiang")
fmt.Println(name)
name = fmt.Sprintln("name :" , "xiang")
fmt.Println(name)
}
- func Errorf(format string, a …interface{}) error 根据错误返回error类型的值。
宽度标识符
%9.2f 其中9是占位符,如果长度不够,会自动占位9位,2是精度,
func main() {
fmt.Printf("%3.5f" , 1.23555454878)
}
- func Scan(a …interface{}) (n int, err error) 用于输入字符,如果需要多个变量,变量之间需要使用空格。
- func Scanf(format string, a …interface{}) (n int, err error) 用于输入字符,需要注意的是,输入的值,只有按照格式输入数据才会被扫描并存入对应变量。
- func Scanln(a …interface{}) (n int, err error) 输入字符,直到最后一个数据末尾有换行符之后才停止扫描。但是需要注意,如果传入两个变量,这两个变量之间需要使用空格进行分割。
func main () {
var name string
var age int
fmt.Scan(&name , &age)//输入test 21
fmt.Println("name : " , name , "age : " , age)
fmt.Scanf("name:%s , age:%d" , &name , &age)//输入name:test , age:21
fmt.Println("name : " , name , "age : " , age)
fmt.Scanln(&name , &age)//输入 test 21回车
fmt.Println("name : " , name , "age : " , age)
}
fscan系列是从文件中或者从标准输入中进行读取数据。
- func Fscan(r io.Reader, a …interface{}) (n int, err error)
- func Fscanln(r io.Reader, a …interface{}) (n int, err error)
- func Fscanf(r io.Reader, format string, a …interface{}) (n int, err error)
func main () {
var name string
fmt.Fscan(os.Stdin , &name)
fmt.Println(name)
}
Sscan系列,将字符串中的数据进行格式化
- func Sscan(str string, a …interface{}) (n int, err error) 以空白符为分隔符,扫描到变量中
- func Sscanln(str string, a …interface{}) (n int, err error) 与sscan类似
- func Sscanf(str string, format string, a …interface{}) (n int, err error) 将字符串格式化到指针中
func main () {
test := "te rr tt g"
ty := "testname"
var r , s , t string
fmt.Sscan(test , &r , &s , &t)
fmt.Println(r , " ", s , " " , t)
fmt.Sscanf(ty , "test%s" , &t)//注意,以空格为分界符
fmt.Println(t)
fmt.Sscanln(ty , "test%s" , &t)//以换行为分界符
fmt.Println(t)
}