00:00
我们来了解一下go那里面的命令行参数。那先看一个需求。比如说,现在我们希望获取到。命令行输入,输入的各种参数应该如何处理?也就是大家看我这有一个图片,比如说我们去执行一个,呃,一个一个可执行文件。那么在这里,在这个地方呢,我们可能会,呃,在执行这个程序的时候,我们顺带就传入一些参数,这个是有可能的,对吧。那么如果我们在这个命令行后边,我们就直接。带了一些参数进去,比如说汤姆还一个路径,还有一个八八这个数字,那么我们怎么在程序里边,就是在这个test。点exe这个程序里面去拿到这几个参数呢。这个是可以的。呃,怎么拿到,告诉大家在这个OS这个包包里面呢,有一个切片叫arguments,就是as arguments,它是一个string的切片,这个切片呢,可以存储所有的命令行参数,我们来看一下这个文档。
01:15
大家看到在OS这个包里面呢,它有。一个variables常量啊,这个变量,变量里面有个这个东西,大家看到没有。这个这个这个变量是它这个包事先已经定义好的一个全局变量,对不对,大家可以看到是个大写的A,是个全局变量,那它是干什么呢?就说这个是个切片,大家看到没有,是个时寸切片,它保管了命令行参数,命令行的所有参数,第一个是程序的名字,也就是说它这个切片里面的第一个参数,呃,第一个元素它就是哪个呢?就是这个程序的名称,从第二个开始呢,就是你的参数的值。明白这个意思吧,好,那么我们来把这个呢做一个案例给大家演示一下,来我们一起走一走。
02:06
好的,这个我们给他一个标题二。对吧,那标题二呢,我们把这个需求也说了。还有呢,就基本介绍我们也说了,我们现在呢,走一个案例。给他一个标题三。好的,然后我们刚才说到一个基本介绍。对不对,这个基本介绍。OK,这个比较简单,我们直接给大家演示了,好吧。把这个图粘过来。就是说我们在做开发的时候呢,有可能需要从这个命令行得到一些参数,你比如说我们得到一个配置文件的路径,或者说一个端口号,我们要监听哪个端口,我们希望把这个做做的更加灵活一点,这时呢,我们可以可能是在执行这个程序的时候,在这个命令行里面给它传入了一些动态的参数。
03:04
明白那些动态参数呢,我们可以通过OS包里面的arguments这个什么呢?它的一个切片来获取。啊,那么举例说明。举例说明。好,我们来举个案例。我们来举一个案例,这个案例呢,我已经给大家准备好了,大家看一下这样子的,请编写。编写一段代码,获取命令行的各个参数。比如说这样的一个题。大看到底。比如说待会呢,我们写一个test.exe这个程序,然后里面有汤姆,有这个文件,还有一个数字,那么这里面其实一共有几个参数啊,有有四个参数,这是第一个。这是汤姆斯第二个路径是第三个,最后99,第四第四一个,那么第零个,也就第一个参数呢,其实就是这个程序的名称,后面从第二个元素开始,就是我们后面这个输入的这些个参数的具体的值,好朋友们,我们来跑一跑一个。
04:08
来吧。我们给大家演示一下这个题。对吧。好,我把具体这个要求呢给大家粘过来,我们来跑一个代码,看看怎么来用这个呢,在实际开发中有时候也会使用到。有时候也会使用到,OK,好,我们来看一个案例,那我就新建一个文件夹。新建一个文件夹。这个呢,我们把它叫做argue。啊,DEMO。就是获取到我们这个命令行里面的参数,好,我直接写一个文件。面点go没问题吧。好,Package me。好,然后我们引个包包import。把form引进去,然后写一个主函数。
05:00
切个主函数,然后呢,现在呢。各位同学,我们怎么样拿到这个命令行得到参数呢?这样子的,首先我们直接输出。来说。命令行的命令行的参数有多少个呢?输出来其实就是这个OS包里面的argue这个切片,我们用Les取下。然后呢,我们便利一下这个切片。遍历这个os.argue这个切片。就可以就可以得到所有的。所有的这个命令行输入的参数值。参数值啊,参数值没问题吧,现在开始for,那for循环呢,这个时候你可以用for,也可以用for,也可以用这个,呃,普通的for循环我用for来处理,好吧,那就是I。
06:03
然后呢,这是值。对不对,然后谁呀OS点。Argue。因为它是个切片嘛,那我就把它输出来了。输出来。F吧。好,我们写一下啊,Argue第一个参数。我们写个V等于这个V,那第一个值呢,就是它的下标嘛,这个I就是代表它是第几个参数对吧。但如果下标为零,其实是代表第一个参数,因为我们这个数组呢,呃,包括切片,它是都是从零开始编号的,对不对,好,只是它写完了,最后打印一下,我们就换一行。对不对,好,这样就写完了,写完过后呢,我们来测试一下。我们来测试一下保存。没问题吧,诶这有个问题。忘了引入OS包。
07:02
把这个包引进去就应该没事儿了。好的,那现在我们来玩一把。CD点点上一级,因为我要生成这个exe文件,对吧,那我就直接这样写吧,CHAPTER14。第CD到里面去。然后dicd啊,这样我就先我先用go build一下,我build一个,呃,可执行程序出来,好吧,我用O。我就让它生成一个text txt这个文件。好吧。点够跑一下。编译成功了,大家看一下,在这里呢,生成了一个test.exe这个文件,好,我来用一下汤姆,好,我再写一个路径,随便写个啊,AA BB init。init.log文件,然后再写一个数字。
08:00
回车我们可以看到。同学们,我们,我们看到他说你一共有四个参数,第一个参数就是它,第二个参数是汤姆。因为它是按空格来间隔的,这是第三个参数,也拿到了第四个参数909。那如果你输的输的更多,他已已然可以给你处理对吧,因为你这地方所有的这个参数呢,都会被自动的被系统放入到那个切片里面去,能理解这意思吧。好,那我这个案例就说完了,我们把它反述一下。我们把它反述一下。各位。OK啊。我把它放到笔记里面去代码实现。好代码实现。走一个。那代码实现过后呢,这个运行的效果。这运行的效果就跟上面几乎是一样的,对吧,几乎是一样的,好,那这个呢,就是我们关于命令行参数的一个基本介绍,和它的一个最简单的应用实例,我们就先说到这里,大家体验一下,消化一下啊,自己呢也可以写一写,自己也可以写一写好的。
我来说两句