go语言的成神之路-标准库篇-fmt标准库

目录
一、三种类型的输出
print:
println:
printf:
总结:
代码展示:
二、格式化占位符
%s:用于格式化字符串。
%d:用于格式化整数。
%f:用于格式化浮点数。
%v:用于格式化任何值,返回其默认格式。
%T:用于输出变量的类型。
进制及其字符?
宽度标识符?
代码展示:?
三、Fprint
输出到标准输出
写入文件中
输出到浏览器
代码展示:
四、Sprint
基本用法:
?多个参数格式化:
格式化复杂数据类型:
五、四种类型的输入
fmt.Scan():
fmt.Scanf():
fmt.Scanln():
bufio.Reader:
一、三种类型的输出
在 Go 语言中,print、printf和println是用于输出内容到控制台的函数,但是它们的用法和功能有所不同:
print:
- print是一个内置函数,用于输出没有格式的字符串。它不添加换行符,也不支持格式化。
println:
- println也是一个内置函数,类似于- print,但它会在输出后自动添加一个换行符。
printf:
-  printf是fmt包中的一个函数,支持格式化输出。可以使用格式化动词插入变量或指定输出格式。package mainimport "fmt"func main() {// Print()函数用于打印字符串到标准输出,不带换行符fmt.Print("Hello, ")fmt.Print("World!")// printf()函数用于格式化输出字符串fmt.Printf("Hello, %s! ", "World")// Println()函数用于打印字符串到标准输出,带换行符fmt.Println("Hello, World!")fmt.Println("Hello,", "World!") } 
总结:
- 使用print和println进行简单输出。
- 使用fmt.Printf进行格式化输出。
代码展示:
package mainimport "fmt"func main() {// Print()函数用于打印字符串到标准输出,不带换行符fmt.Print("Hello, ")fmt.Print("World!")// printf()函数用于格式化输出字符串fmt.Printf("Hello, %s!
", "World")// Println()函数用于打印字符串到标准输出,带换行符fmt.Println("Hello, World!")fmt.Println("Hello,", "World!")
}
二、格式化占位符
在 Go 语言中,fmt.Printf函数使用格式化占位符来格式化输出。以下是一些常见的格式化占位符及其用法:
%s:用于格式化字符串。

%d:用于格式化整数。

%f:用于格式化浮点数。

%v:用于格式化任何值,返回其默认格式。

%T:用于输出变量的类型。

进制及其字符

宽度标识符

代码展示:
package main
import ("fmt")
func main() {name := "小明"fmt.Printf("Hello, %s!
", name) // 输出 Hello, 小明!age:=18fmt.Printf("小明今年%d岁了
",age) // 输出 小明今年18岁了price:=100.5fmt.Printf("价格是%.2f元
",price) // 输出 价格是100.50元//%vfmt.Printf("name=%v,age=%v,price=%v
",name,age,price) // 输出 naem=小明, age=18,price=100.5data := []int{1, 2, 3}fmt.Printf("Data: %v
", data) // 输出: Data: [1 2 3]fmt.Printf("Type of age: %T
", age) // 输出: Type of age: intfmt.Printf("Type of price: %T
", price) // 输出: Type of price: float64fmt.Printf("Type of data: %T
", data) // 输出: Type of data: []int//%tfmt.Printf("Is age true? %t
", age == 18) // 输出: Is age true? truefmt.Printf("Is price true? %t
", price == 100.5) // 输出: Is price true? truefmt.Printf("Is data true? %t
", data == nil) // 输出: Is data true? false//%bnum := 10fmt.Printf("二进制表示: %d is %b
", num, num) // 输出: 二进制表示: 10 is 1010//%cfmt.Printf("字符表示: %d is %c
", 65, 65) // 输出: 字符表示: 65 is A//%dfmt.Printf("十进制表示: %d is %d
", num, num) // 输出: 十进制表示: 10 is 10//%ofmt.Printf("八进制表示: %d is %o
", num, num) // 输出: 八进制表示: 10 is 12//%xfmt.Printf("十六进制表示: %d is %x
", num, num) // 输出: 十六进制表示: 10 is a
}
三、Fprint
在 Go 语言中,Fprint函数属于fmt包,用于将格式化的输出写入到指定的io.Writer接口,而不是直接输出到标准输出。常见的用途包括将输出写入文件、网络连接等。Fprint与Print和Println类似,但它允许你指定输出的目的地。
输出到标准输出

写入文件中


写入文件的时候可以参考下表,详细的罗列出了每一个数字代表的含义。

输出到浏览器

浏览器效果如下:

代码展示:
package main
import ("fmt""os""net/http"
)
func main() {// 输出到标准输出fmt.Fprint(os.Stdout, "Hello, world!")// 写入文件中f, err := os.OpenFile("test.txt", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)if err!= nil {fmt.Println(err)return}defer f.Close()fmt.Fprint(f, "Hello, world!")// 启动一个 HTTP 服务器,监听 8080 端口,并使用自定义的处理器 MyHandlerhttp.ListenAndServe(":8080", &MyHandler{})
}
// 定义一个 MyHandler 结构体,用于处理 HTTP 请求
type MyHandler struct {
}// 实现 http.Handler 接口的 ServeHTTP 方法
// 当有 HTTP 请求到达时,该方法将被调用
func (*MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {// 使用 fmt.Fprint 将 "Hello, world!" 写入到浏览器的响应体中fmt.Fprint(w, "Hello, world!")
}
四、Sprint
在 Go 语言中,Sprint函数属于fmt包,用于将多个值格式化为字符串,而不是直接输出到控制台。与Print或Println不同,Sprint会返回一个字符串,可以将其用于其他操作,例如赋值给变量或用于进一步处理。
基本用法:
package mainimport ("fmt"
)func main() {// 使用 Sprint 将字符串和数字组合生成一个字符串result := fmt.Sprint("Hello, ", "World!", 123)fmt.Println(result) // 输出: Hello, World!123
}
多个参数格式化:
package mainimport ("fmt"
)func main() {name := "Alice"age := 30// 使用 Sprint 组合多个变量为字符串output := fmt.Sprintf("Name: %s, Age: %d", name, age)fmt.Println(output) // 输出: Name: Alice, Age: 30
}
格式化复杂数据类型:
package mainimport ("fmt"
)func main() {data := []int{1, 2, 3}// 格式化切片成字符串str := fmt.Sprint(data)fmt.Println("Data:", str) // 输出: Data: [1 2 3]
}
- Sprint用于将格式化的值转化为字符串并返回。
- Sprintf是更为常用的函数,允许使用格式占位符来进行复杂的格式化。
- Sprint和- Sprintf都不会直接输出到控制台,而是生成字符串,可以用于赋值或进一步的处理。
五、四种类型的输入
在 Go 语言中,输入通常指的是从用户或其他来源读取数据的过程。主要使用fmt包中的函数和os包中的函数来处理输入。
fmt.Scan():
用于从标准输入读取数据,适合读取单个值。
package mainimport ("fmt"
)func main() {var name stringfmt.Print("请输入你的名字: ")fmt.Scan(&name) // 将输入的名字存储到变量 name 中fmt.Println("你好,", name)
}
fmt.Scanf():
用于格式化读取输入,类似于printf的格式化输出。
package mainimport ("fmt"
)func main() {var name stringvar age intfmt.Print("请输入你的名字和年龄(格式:名字 年龄): ")fmt.Scanf("%s %d", &name, &age) // 读取一个字符串和一个整数fmt.Printf("你好, %s,你的年龄是 %d!
", name, age)
}
fmt.Scanln():
类似于Scan(),但会读取一整行直到换行符。
package mainimport ("fmt"
)func main() {var input stringfmt.Print("请输入一行内容: ")fmt.Scanln(&input) // 读取整行输入fmt.Println("你输入的是:", input)
}
bufio.Reader:
对于更复杂的输入,通常使用bufio.Reader来读取。
它可以输入带空格的字符串
package mainimport ("bufio""fmt""os"
)func main() {reader := bufio.NewReader(os.Stdin)fmt.Print("请输入一行内容: ")input, _ := reader.ReadString('
') // 读取一行输入fmt.Println("你输入的是:", input)
}

相关文章:
 
go语言的成神之路-标准库篇-fmt标准库
目录 一、三种类型的输出 print: println: printf: 总结: 代码展示: 二、格式化占位符 %s:用于格式化字符串。 %d:用于格式化整数。 %f:用于格式化浮点数。 %v࿱…...
React Native的router解析
写在前面 React Native(简称RN)是一个由Facebook开发的开源框架,用于构建跨平台的移动应用程序。在RN中,路由(router)是非常重要的概念,它允许我们在不同的屏幕之间进行导航和切换。 以下是RN…...
 
Linux update-alternatives 命令详解
1、查看所有候选项 sudo update-alternatives --list (java筛选sudo update-alternatives --list java) 2、更换候选项 sudo update-alternatives --config java 3、自动选择优先级最高的作为默认项 sudo update-alterna…...
 
【踩坑】修复报错libcurl.so.4、LIBFFI_BASE_7.0、libssl.so.3
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ libcurl.so.4: sudo apt install curl -y LIBFFI_BASE_7.0: conda install libffi3.3 -y libssl.so.3: sudo apt install -y openssl li…...
python网络爬虫基础:html基础概念与遍历文档树
开始之前导入html段落,同时下载好本节将用到的库。下载方式为:pip install beautifulsoup4 一点碎碎念:为什么install后面的不是bs4也不是BeautifulSoup? html_doc """ <html><head><title>The…...
 
【已解决】MacOS上VMware Fusion虚拟机打不开的解决方法
在使用VMware Fusion时,不少用户可能会遇到虚拟机无法打开的问题。本文将为大家提供一个简单有效的解决方法,只需删除一个文件,即可轻松解决这一问题。 一、问题现象 在MacOS系统上,使用VMware Fusion运行虚拟机时,有…...
 
经典视觉神经网络1 CNN
一、概述 输入的图像都很大,使用全连接网络的话,计算的代价较高,图像也很难保留原本特征。 卷积神经网络(Convolutional Neural Network,CNN)是一种专门用于处理具有网格状结构数据的深度学习模型。主要应用…...
 
一些硬件知识【2024/12/6】
MP6924A: 正点原子加热台拆解: PMOS 相比 NMOS 的缺点: 缺点描述迁移率低PMOS 中的空穴迁移率约为电子迁移率的 1/3 到 1/2,导致导通电流较低。开关速度慢由于迁移率较低,PMOS 的开关速度比 NMOS 慢,不适合高速数字电…...
网络安全法-网络安全支持与促进
第二章 网络安全支持与促进 第十五条 国家建立和完善网络安全标准体系。国务院标准化行政主管部门和国务院其他有关部门根据各自的职责,组织制定并适时修订有关网络安全管理以及网络产品、服务和运行安全的国家标准、行业标准。 国家支持企业、研究机构、高等学…...
 
【Docker】如何在Docker中配置防火墙规则?
Docker本身并不直接管理防火墙规则;它依赖于主机系统的防火墙设置。不过,Docker在启动容器时会自动配置一些iptables规则来管理容器网络流量。如果你需要更细粒度地控制进出容器的流量,你需要在主机系统上配置防火墙规则。以下是如何在Linux主…...
 
Cesium 问题: 添加billboard后移动或缩放地球,标记点位置会左右偏移
文章目录 问题分析原先的:添加属性——解决漂移移动问题产生新的问题:所选的经纬度坐标和应放置的位置有偏差解决坐标位置偏差的问题完整代码问题 添加 billboard 后, 分析 原先的: // 图标加载 function addStation ({lon, lat, el, testName...
使用Python3 连接操作 OceanBase数据库
注:使用Python3 连接 OceanBase数据库,可通过安装 PyMySQL驱动包来实现。 本次测试是在一台安装部署OBD的OceanBase 测试linux服务器上,通过python来远程操作OceanBase数据库。 一、Linux服务器通过Python3连接OceanBase数据库 1.1 安装pyth…...
 
SpringBoot该怎么使用Neo4j - 优化篇
文章目录 前言实体工具使用 前言 上一篇中,我们的Cypher都用的是字符串,字符串拼接简单,但存在写错的风险,对于一些比较懒的开发者,甚至觉得之间写字符串还更自在快速,也确实,但如果在后期需要…...
 
Flutter如何调用java接口如何导入java包
文章目录 1. Flutter 能直接调用 Java 的接口吗?如何调用 Java 接口? 2. Flutter 能导入 Java 的包吗?步骤: 总结 在 Flutter 中,虽然 Dart 是主要的开发语言,但你可以通过**平台通道(Platform …...
 
Redis 数据结构(一)—字符串、哈希表、列表
Redis(版本7.0)的数据结构主要包括字符串(String)、哈希表(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)、超日志(…...
 
day1:ansible
ansible-doc <module_name>(如果没有网,那这个超级有用) 这个很有用,用来查单个模块的文档。 ansible-doc -l 列出所有模块 ansible-doc -s <module_name> 查看更详细的模块文档。 ansible-doc --help 使用 --help …...
如何设置Java爬虫的异常处理?
在Java爬虫中设置异常处理是非常重要的,因为网络请求可能会遇到各种问题,如连接超时、服务器错误、网络中断等。通过合理的异常处理,可以确保爬虫的稳定性和健壮性。以下是如何在Java爬虫中设置异常处理的步骤和最佳实践: 1. 使用…...
阿里云盘permission denied
问题是执行 ./aliyunpan 时遇到了 Permission denied 的错误。这通常是因为文件没有执行权限。以下是解决问题的步骤: 检查文件权限 运行以下命令检查文件的权限: ls -l aliyunpan输出中会看到类似以下内容: -rw-r--r-- 1 user group 123…...
在 Ubuntu 24 上安装 Redis 7.0.15 并配置允许所有 IP 访问
前提条件 一台运行 Ubuntu 24 的服务器拥有 sudo 权限的用户 步骤一:更新系统包 首先,确保系统包是最新的,以避免潜在的依赖问题。 sudo apt update sudo apt upgrade -y步骤二:安装编译 Redis 所需的依赖 Redis 需要一些编译…...
构建高效可靠的分布式推理系统:深入解析控制器与模型服务的协同工作
在现代互联网应用中,随着用户需求的增长和技术的进步,单一服务器已经难以满足大规模并发请求的需求。为了提升系统的性能和可靠性,开发者们越来越多地采用分布式架构。本文将结合具体的代码示例,深入浅出地探讨如何构建一个高效的分布式推理系统,并详细解析其中的关键组件…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
 
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
 
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
 
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
 
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
 
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
 
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
