100天精通Golang(基础入门篇)——第7天:深入学习键盘输入和打印输出,掌握常用函数和包

在这里插入图片描述

博主 libin9iOak带您 Go to Golang Language.✨
个人主页——libin9iOak的博客
《面试题大全》 文章图文并茂生动形象简单易学!欢迎大家来踩踩~
《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~
希望本文能够给您带来一定的帮助文章粗浅,敬请批评指正!

前言:

在编程过程中,键盘输入和打印输出是基础而重要的操作。本文将介绍如何使用Go语言的fmt包进行打印输出,以及如何从键盘获取输入。通过学习这些知识,你将能够更加灵活地处理用户输入和输出信息,提升程序的交互性和可读性。

摘要:

本文将详细介绍打印输出和键盘输入的相关内容。首先,我们将深入研究fmt包,探讨其在打印输出中的作用和常用函数。接着,我们将学习如何导入包,确保代码正确运行。最后,我们将介绍如何利用fmt包和bufio包从键盘获取输入。通过本文的学习,你将能够熟练地处理打印输出和键盘输入,为编程工作提供便利。

100天精通Golang(基础入门篇)

    • 前言:
    • 摘要:
  • Go键盘输入和打印输出
    • 一、打印输出
      • 1.1 fmt包
      • 1.2 导入包
      • 1.3 常用打印函数
    • 二、键盘输入
      • 2.1 fmt包读取键盘输入
      • 2.2 bufio包读取
    • bufio包 拓展
    • 总结:
  • 结语

Go键盘输入和打印输出

一、打印输出

1.1 fmt包

fmt包是Go语言中用于格式化输入和输出的标准库包。它提供了一系列函数和方法,可以方便地进行打印输出操作。
当使用Go语言进行打印输出时,可以使用fmt包来进行格式化输出。fmt是一个标准库包,提供了各种函数和方法来处理格式化输出的需求。

下面是fmt包中一些常用的函数和方法的详细解释:

  • Print:该函数用于将给定的参数打印输出到标准输出(通常是控制台)。它可以接受多个参数,并按照它们的默认格式进行输出。不会自动换行。

    func Print(a ...interface{}) (n int, err error)
    
  • Println:该函数与Print函数类似,但会在输出的最后添加一个换行符,使得下一次输出会换到新的一行。

    func Println(a ...interface{}) (n int, err error)
    
  • Printf:该函数用于按照指定的格式进行输出。它的第一个参数是一个格式字符串,可以包含占位符,后续的参数根据占位符的位置来替换。

    func Printf(format string, a ...interface{}) (n int, err error)
    
  • Sprint:该函数用于将给定的参数格式化为字符串,并返回该字符串,而不进行实际的打印输出。它的用法和Print函数类似,但不会输出到标准输出。

    func Sprint(a ...interface{}) string
    
  • Sprintln:该函数与Sprint函数类似,但会在输出的最后添加一个换行符。

    func Sprintln(a ...interface{}) string
    
  • Sprintf:该函数与Printf函数类似,用于按照指定的格式将参数格式化为字符串,并返回该字符串。

    func Sprintf(format string, a ...interface{}) string
    

这些函数和方法提供了灵活的打印输出方式,可以根据不同的需求选择合适的函数来完成格式化输出操作。

fmt包实现了类似C语言printf和scanf的格式化I/O。格式化verb(‘verb’)源自C语言但更简单。

详见官网fmt的API:https://golang.google.cn/pkg/fmt/

100天精通Golang(基础入门篇)——第7天:深入学习键盘输入和打印输出,掌握常用函数和包_第1张图片

1.2 导入包

在使用fmt包进行打印输出之前,需要先导入该包。导入包的语法如下:

import "fmt"

1.3 常用打印函数

fmt包提供了多个常用的打印函数,以下是其中几个常用的函数:

  • Print:用于打印输出内容,不会自动换行。
  • Println:用于打印输出内容,并在结尾添加换行符。
  • Printf:用于格式化输出内容,可以使用占位符指定格式。
  • Sprint:用于将内容格式化为字符串,并返回该字符串。
  • Sprintln:用于将内容格式化为字符串,并在结尾添加换行符,返回该字符串。
  • Sprintf:用于将内容格式化为字符串,可以使用占位符指定格式,返回该字符串。

打印:

func Print(a …interface{}) (n int, err error)

格式化打印:

func Printf(format string, a …interface{}) (n int, err error)

打印后换行

func Println(a …interface{}) (n int, err error)

格式化打印中的常用占位符:

格式化打印占位符:
			%v,原样输出
			%T,打印类型
			%t,bool类型
			%s,字符串
			%f,浮点
			%d,10进制的整数
			%b,2进制的整数
			%o,8进制
			%x,%X,16进制
				%x:0-9,a-f
				%X:0-9,A-F
			%c,打印字符
			%p,打印地址
			 

示例代码:

package main

import (
	"fmt"
)

func main() {
	a := 100           //int
	b := 3.14          //float64
	c := true          // bool
	d := "Hello World" //string
	e := `Ruby`        //string
	f := 'A'
	fmt.Printf("%T,%b\n", a, a)
	fmt.Printf("%T,%f\n", b, b)
	fmt.Printf("%T,%t\n", c, c)
	fmt.Printf("%T,%s\n", d, d)
	fmt.Printf("%T,%s\n", e, e)
	fmt.Printf("%T,%d,%c\n", f, f, f)
	fmt.Println("-----------------------")
	fmt.Printf("%v\n", a)
	fmt.Printf("%v\n", b)
	fmt.Printf("%v\n", c)
	fmt.Printf("%v\n", d)
	fmt.Printf("%v\n", e)
	fmt.Printf("%v\n", f)

}

运行结果:

100天精通Golang(基础入门篇)——第7天:深入学习键盘输入和打印输出,掌握常用函数和包_第2张图片

二、键盘输入

2.1 fmt包读取键盘输入

fmt包提供了一些函数可以读取键盘输入。常用的函数有:

  • Scan:用于从标准输入中读取数据,并将数据存储到指定的变量中。
  • Scanln:用于从标准输入中读取数据,并将数据存储到指定的变量中,读取到换行符时停止。
  • Scanf:用于从标准输入中按照指定的格式读取数据,并将数据存储到指定的变量中。

这些函数都需要传入指定变量的地址作为参数,以便将读取的数据存储到指定的变量中。

常用方法:

func Scan(a …interface{}) (n int, err error)

func Scanf(format string, a …interface{}) (n int, err error)

func Scanln(a …interface{}) (n int, err error)

package main

import (
	"fmt"
)

func main() {
	var x int
	var y float64
	fmt.Println("请输入一个整数,一个浮点类型:")
	fmt.Scanln(&x,&y)//读取键盘的输入,通过操作地址,赋值给x和y   阻塞式
	fmt.Printf("x的数值:%d,y的数值:%f\n",x,y)

	fmt.Scanf("%d,%f",&x,&y)
	fmt.Printf("x:%d,y:%f\n",x,y)
}

运行结果:

100天精通Golang(基础入门篇)——第7天:深入学习键盘输入和打印输出,掌握常用函数和包_第3张图片

2.2 bufio包读取

https://golang.google.cn/pkg/bufio/

除了使用fmt包进行键盘输入外,还可以使用bufio包进行键盘输入操作。bufio包提供了一些功能更强大的函数,可以更方便地进行键盘输入操作。

首先需要导入bufio包,导入语法如下:

import "bufio"

常用的函数有:

  • NewScanner:用于创建一个Scanner对象,用于读取键盘输入。
  • Scan:用于从键盘输入中读取一行数据,并返回读取到的数据。
  • Text:用于获取Scanner对象当前位置的文本。

这些函数的使用方式可以根据具体需求选择,通过Scanner对象可以更灵活地进行键盘输入操作。

bufio包中都是IO操作的方法:

先创建Reader对象:
100天精通Golang(基础入门篇)——第7天:深入学习键盘输入和打印输出,掌握常用函数和包_第4张图片

然后就可以各种读取了:

100天精通Golang(基础入门篇)——第7天:深入学习键盘输入和打印输出,掌握常用函数和包_第5张图片

示例代码:

package main

import (
	"fmt"
	"os"
	"bufio"
)

func main() {
	fmt.Println("请输入一个字符串:")
	reader := bufio.NewReader(os.Stdin)
	s1, _ := reader.ReadString('\n')
	fmt.Println("读到的数据:", s1)

}

运行效果:

100天精通Golang(基础入门篇)——第7天:深入学习键盘输入和打印输出,掌握常用函数和包_第6张图片源码解释:

首先,使用fmt.Println函数输出提示信息,要求用户输入一个字符串。
接着,创建一个bufio.Reader对象reader,并传入os.Stdin作为输入源,表示从标准输入读取数据。
使用reader.ReadString('\n')方法读取输入的字符串,直到遇到换行符(‘\n’)为止,并将读取到的字符串赋值给变量s1
最后,使用fmt.Println函数输出读取到的字符串。

这段代码通过使用bufio包提供的缓冲读取功能,可以实现更高效和方便的键盘输入操作。用户在标准输入中输入一个字符串,按下回车键表示输入结束,然后该字符串就会被读取到并打印输出。

bufio包 拓展

bufio包提供了对输入输出进行缓冲处理的功能,它可以更高效地读取和写入数据。下面是bufio包的一些常用函数和使用案例:

  • NewScanner:该函数用于创建一个Scanner对象,用于从指定的输入源读取数据。它接受一个io.Reader类型的参数作为输入源,可以是标准输入、文件或网络连接等。

    func NewScanner(r io.Reader) *Scanner
    

    示例代码:

    package main
    
    import (
        "bufio"
        "fmt"
        "os"
    )
    
    func main() {
        scanner := bufio.NewScanner(os.Stdin)
        fmt.Println("Enter your name:")
        scanner.Scan() // 读取输入的一行数据
        name := scanner.Text() // 获取输入的文本内容
        fmt.Println("Hello,", name)
    }
    

    上述示例中,通过bufio.NewScanner(os.Stdin)创建了一个Scanner对象,将标准输入作为输入源。然后使用scanner.Scan()读取用户输入的一行数据,并使用scanner.Text()获取输入的文本内容,最后打印输出。

  • Scan:该方法用于从输入源中读取下一行数据,读取成功返回true,读取失败或到达输入源结尾返回false。

    func (s *Scanner) Scan() bool
    
  • Text:该方法用于获取Scanner对象当前位置的文本内容。

    func (s *Scanner) Text() string
    
  • Split:该函数用于自定义Scanner对象的分隔函数,用于按照指定的分隔符将输入源中的数据拆分成多个部分。

    func (s *Scanner) Split(split SplitFunc)
    

    示例代码:

    package main
    
    import (
        "bufio"
        "fmt"
        "strings"
    )
    
    func main() {
        input := "Hello,World"
        scanner := bufio.NewScanner(strings.NewReader(input))
        scanner.Split(bufio.ScanWords) // 使用空格作为分隔符
    
        for scanner.Scan() {
            fmt.Println(scanner.Text()) // 逐行打印输出拆分后的内容
        }
    }
    

    上述示例中,我们使用bufio.NewScanner创建了一个Scanner对象,并将字符串"Hello,World"作为输入源。通过调用scanner.Split(bufio.ScanWords)指定了以空格作为分隔符,然后使用scanner.Scan()读取下一部分数据,并通过scanner.Text()获取该部分的文本内容进行输出。

bufio包的功能还包括对写入操作的缓冲处理,如Writer类型可以对输出进行缓冲处理,提高写入效率。除了上述介绍的函数和方法外,bufio包还提供了其他功能丰富的函数和方法,可以根据具体需求进行使用。

总结:

键盘输入和打印输出是编程中不可或缺的基础操作。通过学习本文介绍的知识点,你已经掌握了使用Go语言进行打印输出和键盘输入的技巧。在实际的编程工作中,你可以根据具体需求,灵活运用这些知识,提高代码的质量和可读性。希望本文能够对你的学习和工作有所帮助,祝你编程愉快!

在这里插入图片描述

结语

通过今天的学习,您已经踏上了Golang的学习之旅。在未来的日子里,您将探索Golang的各个方面,从基础概念到高级技巧,从实际应用到性能优化。
学习一门编程语言是一个持续的过程,每一天都是您向Golang的精通迈进的重要一步。我鼓励您坚持每天学习,保持热情和好奇心,解决挑战并享受成功的喜悦。

在您的学习旅程中,不要忘记参与社区和与其他Golang开发者交流。分享您的见解和经验,向他人学习,并在开源项目或实际应用中展示您的技能。

如果您在学习过程中遇到困难或有任何问题,不要犹豫向社区和专家寻求帮助。持续学习,勇敢探索,您将在Golang领域取得令人瞩目的成就。

最后,感谢您的阅读和支持!祝愿您在未来的每一天中都能够成为一名精通Golang的开发者!

期待听到您在学习过程中的进展和成就。如果您需要进一步的帮助,请随时告诉我。祝您在学习Golang的旅程中取得巨大成功!

如果您在学习过程中有任何疑惑,请点击下方名片,带您一对一快速入门 Go语言 的世界 ~

你可能感兴趣的:(Go,云原生,golang,学习,开发语言)