• Golang fmt包介绍


    前言

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

      

    参考

  • 相关阅读:
    Datawhale编程实践(LeetCode 腾讯精选练习50)Task11
    Datawhale编程实践(LeetCode 腾讯精选练习50)Task10
    Datawhale编程实践(LeetCode 腾讯精选练习50)Task9
    Datawhale编程实践(LeetCode 腾讯精选练习50)Task8
    Datawhale编程实践(LeetCode 腾讯精选练习50)Task7
    Java多线程之三volatile与等待通知机制示例
    Java多线程之一
    [WC2021] 括号路径
    [CF1375H] Set Merging
    [CF1342E] Placing Rooks
  • 原文地址:https://www.cnblogs.com/sss4/p/12636120.html
Copyright © 2020-2023  润新知