随笔 - 241  文章 - 1  评论 - 58  阅读 - 85万 

前言

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)
 
}

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考

posted on   Martin8866  阅读(646)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示