当前位置: 首页 > news >正文

Go语言 编写最简单的命令行工具

在 Go 语言中,我们可以轻松地编写命令行工具。本文将介绍如何使用 Go 语言编写一个最简单的命令行工具,涉及到命令行参数os.Args和用户输入bufio

一、命令行参数os.Args

在 Go 语言中,os.Args是一个字符串切片,它包含了命令行启动程序时传递的参数。第一个参数是程序的名称,后续的参数是用户在命令行中输入的参数。使用os.Args获取命令行参数并打印出来:

package mainimport "fmt"func main() {if len(os.Args) > 1 {fmt.Println("命令行参数:")for _, arg := range os.Args[1:] {fmt.Println(arg)}} else {fmt.Println("没有输入命令行参数。")}
}

在这里插入图片描述

二、用户输入bufio

除了命令行参数,我们还可以使用bufio包从用户那里获取输入。bufio包提供了缓冲 I/O 的功能,可以更高效地处理输入和输出。使用bufio包获取用户输入并打印出来:

package mainimport ("bufio""fmt""os"
)func main() {reader := bufio.NewReader(os.Stdin)fmt.Println("请输入一些内容:")input, _ := reader.ReadString('\n')fmt.Println("你输入的内容是:", input)
}

在这里插入图片描述

三、结合命令行参数和用户输入

我们可以将命令行参数和用户输入结合起来,创建一个更复杂的命令行工具。例如,我们可以根据命令行参数执行不同的操作,并从用户那里获取进一步的输入:

package mainimport ("bufio""fmt""os"
)func main() {if len(os.Args) > 1 {fmt.Println("命令行参数:", os.Args[1])reader := bufio.NewReader(os.Stdin)fmt.Println("请输入一些内容:")input, _ := reader.ReadString('\n')fmt.Println("你输入的内容是:", input)} else {fmt.Println("没有输入命令行参数。")}
}

在这里插入图片描述

四、编译和运行

打开命令行终端,进入包含 Go 代码文件的目录,编译 Go 程序:

   go build your_program.go

运行可执行文件:

  ./your_program [命令行参数]

五、区别

在 Go 语言中,os.Args用于获取命令行启动程序时传递的参数,是一个字符串切片,第一个参数是程序名称,后续是用户输入的参数。

bufio包中的bufio.NewReader(os.Stdin)可从用户那里获取输入,通过ReadString('\n')等方法读取用户输入直到遇到换行符。

区别在于os.Args获取的是启动程序时在命令行提前给定的参数,bufio则是在程序运行中等待用户实时输入内容。

http://www.dtcms.com/a/475080.html

相关文章:

  • 【指针学习】
  • Go容器:双向链表和小根堆的源码解读
  • 深圳vi设计工作室搜索seo优化托管
  • 做的最好的理财网站地址一地址二在线发布页
  • 网站开发程序员招聘梅州建站怎么做
  • 普陀酒店网站建设有没有专门做中式的设计网站
  • 基于STM32与influxDB的电力监控系统-20
  • 购物网站开发多少钱免费连网络的软件有哪些
  • LeetCode算法日记 - Day 69: 第 N 个泰波那契数、三步问题
  • 【系统分析师】写作框架:项目风险管理及其应用
  • 容器编排大王Kubernetes——控制器的使用(3)
  • 建筑设计图保定seo网络推广
  • 上海网站设计费用温州鹿城区企业网站搭建
  • 网站建设方案功能哪个网站可以做微商
  • 牛客:大加法数
  • 连云港网站开发公司江苏省建设厅网站
  • 景区宣传网站制作模板wordpress安装无法连接数据库
  • 四川省建设工程质量监督总站网站seo优化思路
  • 手机官方网站广告软文
  • 站长工具查询域名网络营销方式有哪些
  • 萧山区住房和城乡建设局网站进入公众号核酸检测
  • 记录oracle19c安装完成后,使用navcat连接数据库一直报错ORA-00922: 选项缺失或无效
  • 网站不被收录自建网站推广的最新发展
  • 泰安微信网站建设asp.net 当前网站
  • LINUX复习资料(二)
  • 基于视觉与IMU融合的地下停车场自动导航系统原理与实现
  • 国外域名购买网站品牌策划方案设计
  • 外设模块学习(5)——DS18B20温度传感器(STM32)
  • 网站增加点击率 怎样做app制作哪里正规
  • 自己做的网站慢是什么原因哪些网站微信支付平台