fmt包介绍

我是研究僧i 提交于 2020-04-05 18:08:25

前言

Go不同于Python使用1个print内置函数就可以完美包揽一些输出了。

 fmt包实现了类似C语言printf和scanf的格式化I/O。主要分为向外输出内容获取输入内容两大部分

 

向外输出

标准库fmt提供了以下几种输出相关函数

 

Print 

普通的 输出、换行 、支持字符串格式化输出。

package main

import "fmt"

var m1 = make(map[string]int, 1)

func main() {

	m1["age"] = 18

	fmt.Print("Hello World\n")        //不会自动在打印内容后面加换行符\n
	fmt.Println("Hello World")        //Println 支持自动加换行符
	fmt.Printf("Hello %s\n", "World") //Printf支持 占位符
	fmt.Printf("%t\n", false && false)
	fmt.Printf("%#v\n", m1) //map[string]int{"age":18}
	fmt.Printf("%c\n", 's')
	fmt.Printf("%q\n", "drop database mysql;") //帮字符串加双引号;
	n := 12.34
	fmt.Printf("%f\n", n)
	fmt.Printf("%9f\n", n)
	fmt.Printf("%.2f\n", n) //只取2位小数点

	/*
	   %s:输出字符串
	   %T:查看数据类型
	   %d:十进制数
	   %b:二进制数
	   %o:八进制数
	   %x:十六进制数
	   %c:输出字符
	   %p:输出指针
	   %v:按值的原样输出
	   %#v:值的Go语法表示
	   %f:输出浮点数
	   %%:转义百分号
	   %t:布尔值
	   %s:该值对应unicode码值
	   %q:帮字符串加双引号,做sql拼接
	   %.2f:只取2位小数点


	*/
}

 

Sprint

Sprint系列函数会把传入的数据生成    并返回一个字符串。以供变量接收!

package main

import "fmt"

func main() {
	//Sprint函数 就是可以把输出的内容,让变量接收到
	s2 := fmt.Sprintln("Hello World")
	s1 := fmt.Sprint("Hello")
	v1 := fmt.Sprintf("%s Martin", s1)
	fmt.Println(v1)
	fmt.Print(s2)
}

  

 

 

获取键盘输入

Go语言fmt包下有fmt.Scanfmt.Scanffmt.Scanln三个函数,可以在程序运行过程中从标准输入获取用户的输入。

Scan
 
空格符分割用户的输入
 
package main

import "fmt"

func main() {
	//一定要记住要在Go中修改变量一定要传指针

	var (
		name  string
		age   int
	)
	fmt.Print("请输入姓名、年龄 以空格隔开: ")
	fmt.Scan(&name) //用户输入遇到空格 赋值给变量
	fmt.Scan(&age) //用户输入遇到空格 赋值给变量
	fmt.Printf("用户输入的姓名是:%s 年龄是 %d\n",name,age)



}

 

Scanln
使用空格(换行符)分割用户输入的内容
package main

import "fmt"

func main() {
	//一定要记住要在Go中修改变量一定要传指针

	var (
		name string
		age  int
	)
	fmt.Print("请输入姓名: ")
	fmt.Scanln(&name) //用户输入遇到回车(换行符) 赋值给变量
	fmt.Println("用户输入的姓名是 ", name)

	fmt.Print("请输入年龄: ")
	fmt.Scanln(&age) //用户输入遇到回车(换行符) 赋值给变量
	fmt.Println("用户输入的年龄是 ", age)

}

 

Scanf

使用空格分割用户输入,支持 格式化输入
package main

import "fmt"

func main() {
	//一定要记住要在Go中修改变量一定要传指针
	var (
		name string
		age  int
	
	)
	fmt.Printf("输入姓名和年龄空格隔开: ")
	fmt.Scanf("%s%d", &name,&age) //支持 格式化输入
	fmt.Printf("你输入的姓名:%s 年龄:%d", name, age)

}

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!