登录
首页 >  Golang >  Go教程

Goland字符串格式化样式中“\r“的作用详解

来源:脚本之家

时间:2023-05-12 15:50:59 324浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《Goland字符串格式化样式中“\r“的作用详解》,聊聊字符串格式化、\r,我们一起来看看吧!

格式化字符串(Format String)是在编程过程中,允许编码人员通过特殊的占位符,将相关对应的信息整合或提取的规则字符串。

简单地说,也就是我们编程过程中常用的空格附、换行符、制表符等。

格式化字符串包括格式化输入和格式化输出。

原理

格式化字符串的本质,可以理解为是编码过程中,程序员调用相关格式化字符串的一个操作协议规定。

在这个协议规定中,程序员必须严格依照格式化字符中的占位符,严格进行相关的信息配置。错误的或者不当的信息配置,会导致程序运行失效,甚至未定义行为产生。

在编译过程中,编译器通常会首先对格式化字符串进行加载解析,获取其中的占位符以及各个占位符(可为空)的修饰符,针对占位符以及修饰符的要求,对后续的参数进行读取。通常,对于绝大多数库函数而言,这个过程通常是没有验证的。1

效果

"\r"起的作用是回到行首,当前控制台输出,输出完以后回到当前行的行首。
具体示例如下,这样可以起到对输出字符的覆盖作用,进而实现如下动态效果:

实验代码

这是一个利用go语言书写的代码,代码的主要作用如上面动态图所示。

其原理为,通过采用递归方式求解斐波那契数列,使得主程序在较长时间内不会结束。

在这期间,开辟一个协程,在协程内通过“\r”实现不断返回行首,进行不同字符的输出,进而实现程序运行效果。

package main
import (
	"fmt"
	"time"
)
func main() {
	go spinner(100 * time.Millisecond)
	const n = 45
	fibN := fib(n) // slow
	fmt.Printf("\rFibonacci(%d) = %d\n", n, fibN)
}
func spinner(delay time.Duration) {
	for {
		for _, r := range `-\|/` {
			fmt.Printf("\r%c", r)
			time.Sleep(delay)
		}
	}
}
func fib(x int) int {
	if x 

理论要掌握,实操不能落!以上关于《Goland字符串格式化样式中“\r“的作用详解》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:脚本之家 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>