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

目录
  • ️ 实战场景
    • Print 系列函数
    • Fprint 函数
    • Sprint 函数
    • Errorf 函数
  • ️ 格式化占位符
    • 通用部分
    • 整型相关
    • 浮点数与复数
    • 布尔型和指针
  • ️ 标准输入
    • fmt.Scan
    • fmt.Scanf
    • fmt.Scanln
    • Fscan 和 Sscan 系列函数

️ 实战场景

本篇博客为大家带来 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包的资料请关注我们其它相关文章!

(0)

相关推荐

  • golang fmt占位符的使用详解

    golang fmt格式"占位符" golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf. 定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"zhangsan"} 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式. Printf("%v", people) {zhangsan}, %+v 打印结构体时,会添加字

  • Goland 2020或2019软件版本去掉a...或fmt...提示的方法

    Goland是JetBrains公司出品的一款开发Golang的工具.由于本人是JetBrains公司产品的重度使用者,好多都作为主力开发工具(IntellijI IDEA.PyCharm.WebStorm等),所以Goland一经推出,就成为我开发Golang的首选IDE. 下面介绍,去掉代码里a-或fmt-提示的方法. 一.针对Goland 2020以上版本 去掉Go语言提示的方法 点击GoLand菜单栏上的[File] --> Setttings --> Editor --> In

  • 在goland中配置gofmt的操作

    Goland是JetBrains公司推出的Go语言IDE,是一款功能强大,使用便捷的产品. 在Goland中,可以通过添加一个File Watcher来在文件发生变化的时候调用gofmt进行代码格式化, 具体方法是,点击Preferences -> Tools -> File Watchers,点加号添加一个go fmt模版,Goland中预置的go fmt模版使用的是go fmt命令,将其替换为gofmt,然后在参数中增加-l -w -s参数,启用代码简化功能. 添加配置后,保存源码时,go

  • golang 输出重定向:fmt Log,子进程Log,第三方库logrus的详解

    独立 fmt Log输出重定向 golang的fmt包的输出函数 Println.Printf.PrintStack等,默认将打印输出到os.Stdout.错误打印输出到os.Stderr,os.Stdout 和 os.Stderr 默认值 /dev/stdout /dev/stderr 设备. //代码摘自:golang封装包 -> /lib/golang/src/os var ( Stdin = NewFile(uintptr(syscall.Stdin), "/dev/stdin&q

  • Go语言基础go fmt命令使用示例详解

    go fmt 命令主要是用来帮你格式化所写好的代码文件[很多第三方集成软件都是使用了go fmt命令] 一.使用: go fmt <文件名>.go 使用go fmt命令,更多时候是用gofmt,而且需要参数 -w,否则格式化结果不会写入文件.gofmt -w src,可以格式化整个项目. 二.参数介绍 -l 显示那些需要格式化的文件 -w 把改写后的内容直接写入到文件中,而不是作为结果打印到标准输出. -r 添加形如"a[b:len(a)] -> a[b:]"的重写规

  • golang 占位符和fmt常见输出介绍

    1.常用的占位符 %d 整型占位符 %f 浮点型占位符 %t 布尔型占位符 %s 字符串类型占位符 %q 带引号字符串类型占位符 %p 指针型占位符 %v 通用占位符 %b 二进制 %x 十进制 2.fmt 输出 fmt.Print 输出到控制台,不接受任何格式操作 fmt.Println 输出到控制台并换行 fmt.Printf 只可以打印出格式化的字符串 fmt.Sprintf 格式化并返回一个字符串而不带任何输出 fmt.Fpirntf 格式化并输出到io.writers 而不是os.St

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

    目录 ️ 实战场景 Print 系列函数 Fprint 函数 Sprint 函数 Errorf 函数 ️ 格式化占位符 通用部分 整型相关 浮点数与复数 布尔型和指针 ️ 标准输入 fmt.Scan fmt.Scanf fmt.Scanln Fscan 和 Sscan 系列函数 ️ 实战场景 本篇博客为大家带来 Go 语言中的 fmt 包,该包实现了标准输入和输出两大部分内容. 首先对外输出,包含 Print,Fprint,Sprint,Errorof 等内容,其中 Print 在之前的博客中已

  • JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)

    Apache Arrow是是各种大数据工具(包括BigQuery)使用的一种流行格式,它是平面和分层数据的存储格式.它是一种加快应用程序内存密集型. 数据处理和数据科学领域中的常用库: Apache Arrow.诸如Apache Parquet,Apache Spark,pandas之类的开放源代码项目以及许多商业或封闭源代码服务都使用Arrow.它提供以下功能: 内存计算 标准化的柱状存储格式 一个IPC和RPC框架,分别用于进程和节点之间的数据交换 让我们看一看在Arrow出现之前事物是如何

  • 一篇文章带你搞懂Go语言标准库Time

    目录 前言 时间类型 时间戳 时间间隔 操作时间 Add Sub Equal Before After 定时器 时间格式化 解析字符串格式的时间 总结 前言 在编程过程中,我们经常会用到与时间和日期相关的各种需求,下面来介绍 Go 语言中有关时间的一些基本用法. 时间类型 time.Time 类型表示时间.可以通过 time.Now() 函数获取当前的时间对象,然后获取时间对象的年月日时分秒等信息. 示例代码如下: func main() { now := time.Now() //获取当前时间

  • Go语言标准库之strconv的使用

    目录 1. string 与 int 类型之间的转换 1.1 Itoa():整型转字符串 1.2 Atoi():字符串转整型 1.3 fmt.Sprintf 其它类型转字符串 2. Parse系列函数 2.1 ParseBool() 2.2 ParseInt() 2.3 ParseUnit() 2.4 ParseFloat() 3. Format 系列函数 3.1 FormatBool() 3.2 FormatInt() 3.3 FormatUint() 3.4 FormatFloat() 4.

  • JS库之Three.js 简易入门教程(详解之一)

    开场白 webGL可以让我们在canvas上实现3D效果.而three.js是一款webGL框架,由于其易用性被广泛应用.如果你要学习webGL,抛弃那些复杂的原生接口从这款框架入手是一个不错的选择. 博主目前也在学习three.js,发现相关资料非常稀少,甚至官方的api文档也非常粗糙,很多效果需要自己慢慢敲代码摸索.所以我写这个教程的目的一是自己总结,二是与大家分享. 本篇是系列教程的第一篇:入门篇.在这篇文章中,我将以一个简单的demo为例,阐述three.js的基本配置方法.学完这篇文章

  • 一文带你了解Go语言标准库math和rand的常用函数

    目录 math 标准库 Abs 函数 Max 函数 Min 函数 Ceil Floor 函数 Trunc 函数 Dim 函数 Mod 函数 Pow 函数 Sqrt 函数 Cbrt 函数 Modf 函数 rand 代码示例 小结 math 标准库 math 标准库提供了一些 常量如 int64 类型的最大值.float64 类型的最大值等,和常用的数学计算函数. 常用函数 函数 说明 Abs(x float64) float64 传入 x 参数,返回 x 的绝对值 Max(x, y float64

  • 一文带你了解Go语言标准库strings的常用函数和方法

    目录 strings 库 高效拼接字符串 大小写转换 比较两个字符串 字符串的替换 按照某个分割标识分割字符串 去掉字符串左右两边的空格 将字符串[左边]或[右边]或[左右两边]所指定的字符(串)去掉 判断字符串是否以指定的字符串开头 判断字符串是否以指定的字符串结束 将字符串切片中的元素以指定字符串连接生成新字符串 查找子串是否存在于指定的字符串中 小结 strings 库 strings 库包含了许多高效的字符串常用操作的函数和方法,巧用这些函数与方法,能极大的提高我们程序的性能.下面介绍一

  • Fiddler实现手机抓包之小白入门必看

    Fiddler是一个轻量级的http抓包工具,且有良好的用户界面,实用强大易上手.通过设置代理接受处理所有的http请求和响应,可以很轻松的对手机上的安卓应用进行抓包. 电脑最好是笔记本,这样能和手机保持统一局域网内:其他不多说,直接说步骤了. 一.对PC(笔记本)参数进行配置    1. 配置fiddler允许监听到https(fiddler默认只抓取http格式的) 打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS, 勾选CaptureHTT

  • 网络抓包工具wireshark入门教程详解

    Wireshark(前称Ethereal)是一个网络数据包分析软件.网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据. Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换. 网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识. 当然,有的人也会"居心叵测"的用它来寻找一些

  • python库-dotenv包 及 .env配置文件详解

    目录 python库-dotenv包 | .env配置文件 背景 python-dotenv 如何使用 python库-dotenv包 | .env配置文件 背景 我们开发的每个系统都离不开配置信息,这些信息都非常敏感,一旦泄露出去后果非常严重,被泄露的原因一般是程序员将配置信息和代码混在一起导致的. 一般业务代码中,通过环境变量来加载敏感信息. 将敏感信息设置成环境变量,但是这样的信息非常多,挨个设置也太麻烦了.你一定希望可以将这些敏感信息单独放在一个文件中,始终与代码分开管理. 在pytho

随机推荐