当前位置:首页 > 文章列表 > Golang > Go教程 > go语言标准库fmt包的一键入门

go语言标准库fmt包的一键入门

来源:脚本之家 2023-01-24 08:43:13 0浏览 收藏

本篇文章给大家分享《go语言标准库fmt包的一键入门》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

⛳️ 实战场景

本篇博客为大家带来 Go 语言中的 fmt 包,该包实现了标准输入和输出两大部分内容。

首先对外输出,包含 PrintFprintSprintErrorof 等内容,其中 Print 在之前的博客中已经有所涉及,本篇我们将其细致的说明一下。

Print 系列函数

与 Print 系列同源的函数涉及 PrintfPrintln 等内容,其含义如下所示:

Print:直接输出内容;

Printf:格式化输出字符串;

Println:在输出的结尾多添加一个换行符。

接下来直接用代码演示一下即可掌握。

package main
import "fmt"
func main() {
	fmt.Print("单独一行输出信息")
	name := "梦想橡皮擦"
	fmt.Printf("博主:%s\n", name)
	fmt.Println("带换行的展示")
	fmt.Printf("博主:%s\n", name)
}

输出结果如下所示:

单独一行输出信息博主:梦想橡皮擦
带换行的展示
博主:梦想橡皮擦

其中 Printf 中涉及格式化占位符相关之后,请看下文。

Fprint 函数

该函数以 F 开头,基本可以确定其和文件操作有直接关系,在实践中会发现该函数会将内容输出到 io.Writer ,测试代码如下所示:

package main
import (
	"fmt"
	"os"
)
func main() {
	// 打开文件对象,并准确写入内容
	fileObj, err := os.OpenFile("./ca.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
	if err != nil {
		fmt.Println("文件异常:", err)
		return
	}
	name := "梦想橡皮擦"
	fmt.Fprintf(fileObj, "姓名:%s", name)
}

在编写代码前,注意优先导入 os 包,用于操作文件,然后使用 os.OpenFile 创建一个文件对象,后续就可对文件对象进行内容写入。

Sprint 函数

该函数以 S 打头,那必然和字符串有关,示例代码如下所示:

package main
import (
	"fmt"
)
func main() {
	// Sprint 函数
	s1 := fmt.Sprint("橡皮擦")
	name := "橡皮擦"
	age := 18
	s2 := fmt.Sprintf("name:%s,age:%d", name, age)
	s3 := fmt.Sprintln("橡皮擦")
	fmt.Println(s1, s2, s3)
}

Sprint 系列函数会把传入的数据生成一个字符串返回。

Errorf 函数

该函数根据 format 参数对字符串进行格式化并返回。

package main
import (
	"fmt"
)
func main() {
	err := fmt.Errorf("这是一个错误")
	fmt.Print(err)
}

该内容与具体场景有关系,直接使用,与普通字符串无太大差异。

⛳️ 格式化占位符

在 Go 中只要函数名中携带了 printf,那就支持 format 格式化参数,即占位符,下面我们对占位符进行一下基本说明。

通用部分

占位符都由 % 开头,后跟具体类型。

%v:值默认形式;

%+v:输出结构体会携带字段名;

%#v:用 Go 的语法表示值;

%T:值类型;

%%:打印符号 %

可以使用下述代码进行测试:

package main
import (
	"fmt"
)
func main() {
	fmt.Printf("%v\n", 60)
	fmt.Printf("%v\n", "橡皮擦")
	o := struct{ name string }{"橡皮擦"}
	fmt.Printf("%v\n", o)
	fmt.Printf("%#v\n", o)
	fmt.Printf("%T\n", o)
	fmt.Printf("60%%\n")
}

整型相关

与整型相关的占位符有:

%b:二进制展示;

%c:unicode 编码展示;

%d:十进制;

%o:八进制;

%x:十六进制小写;

%X:十六进制大写;

%q:go 语法字符字面值。

本部分比较简单,直接测试一下即可,在实践中根据需要展示。

浮点数与复数

%b:去除小数部分,二进制指数的科学计数法;

%e:科学计数法,字母 e 小写;

%E:同上,字母 e 大写;

%f:展示小数;

%F:同上;

%g:根据实际情况使用 %e 还是 %f

布尔型和指针

%t:展示为 true 和 false;

%p:十六进制展示,并且前导加 ox

⛳️ 标准输入

Go 语言 fmt 包下有 fmt.Scanfmt.Scanffmt.Scanln 三个标准输入函数,用于获取用户输入信息

fmt.Scan

该函数从标准输入获取文本,遇到换行符即表示获取结束,简单的示例代码如下所示:

package main
import (
	"fmt"
)
func main() {
	var (
		name string
		age  int
	)
	fmt.Scan(&name, &age)
	fmt.Printf("获取用户输入 name:%s age:%d \n", name, age)
}

fmt.Scanf

在获取数据时,可以使用 format 参数,而且要求输入的数据必须能与对应格式匹配。

fmt.Scanln

Scanln 类似 Scan,它在遇到换行时才停止扫描。

Fscan 和 Sscan 系列函数

以上几个函数的功能类似于标准输出中的用法,F 开头的函数用于操作文件,S 开头的函数表示从指定字符串中读取数据,到此这篇关于go语言标准库fmt包的文章就介绍到这了更多关于go标准库fmt包的资料请关注golang学习网其它相关文章!

终于介绍完啦!小伙伴们,这篇关于《go语言标准库fmt包的一键入门》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

版本声明
本文转载于:脚本之家 如有侵犯,请联系study_golang@163.com删除
Go并发同步Mutex典型易错使用场景Go并发同步Mutex典型易错使用场景
上一篇
Go并发同步Mutex典型易错使用场景
Go语言文件开关及读写操作示例
下一篇
Go语言文件开关及读写操作示例
评论列表
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    514次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    499次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • SEO  AI Mermaid 流程图:自然语言生成,文本驱动可视化创作
    AI Mermaid流程图
    SEO AI Mermaid 流程图工具:基于 Mermaid 语法,AI 辅助,自然语言生成流程图,提升可视化创作效率,适用于开发者、产品经理、教育工作者。
    581次使用
  • 搜获客笔记生成器:小红书医美爆款内容AI创作神器
    搜获客【笔记生成器】
    搜获客笔记生成器,国内首个聚焦小红书医美垂类的AI文案工具。1500万爆款文案库,行业专属算法,助您高效创作合规、引流的医美笔记,提升运营效率,引爆小红书流量!
    584次使用
  • iTerms:一站式法律AI工作台,智能合同审查起草与法律问答专家
    iTerms
    iTerms是一款专业的一站式法律AI工作台,提供AI合同审查、AI合同起草及AI法律问答服务。通过智能问答、深度思考与联网检索,助您高效检索法律法规与司法判例,告别传统模板,实现合同一键起草与在线编辑,大幅提升法律事务处理效率。
    605次使用
  • TokenPony:AI大模型API聚合平台,一站式接入,高效稳定高性价比
    TokenPony
    TokenPony是讯盟科技旗下的AI大模型聚合API平台。通过统一接口接入DeepSeek、Kimi、Qwen等主流模型,支持1024K超长上下文,实现零配置、免部署、极速响应与高性价比的AI应用开发,助力专业用户轻松构建智能服务。
    669次使用
  • 迅捷AIPPT:AI智能PPT生成器,高效制作专业演示文稿
    迅捷AIPPT
    迅捷AIPPT是一款高效AI智能PPT生成软件,一键智能生成精美演示文稿。内置海量专业模板、多样风格,支持自定义大纲,助您轻松制作高质量PPT,大幅节省时间。
    568次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码