00:01
各位,我们来看一下在go中如何从键盘输入这个语句。那么在编程的时候呢,我们往往会接收用户输入的数据,对不对,而且呢,我们后面呢,做一些案例,我们也需要有这个功能,比如说我在这个控制台。我在这个控制台,就是我们这个终端,我可以输一个数十或者30,那么我希望我输入的输入的这些动态输入的这些数据呢,在程序里面给获取到。那怎么做呢?也就是说现在说的是需要接收用户输入的数据,这时呢,就可以使用键盘输入语句来把它获取到。就是键盘输入语句,那这个时候我们怎么样来接收到这个东西呢?它的步骤是首先呢要导入format包,这个包里面有两个重要的函数,一个叫SCLN,一个叫SC,这两个函数呢,都可以用来获取用户的输入数据,我们简单的看一下这个手册。
01:03
大家看打开这个手册,Fmt这些这些格式我就不说了吧,我们前用过啊,什么百分号VR,百分号T,百分号B等等等等这些含义我就不再多说了,我们找一下刚才老师说的那两个函数,我们往下拉。我们看到第一个函数叫SCLN,看这里。点进去。哦,它是干什么的呀,这个这个函数是看,这里是看LN,它是类似于看,但会在换行时才停止扫描。最后一个条目后必须有换行或者到达结束位置,也也就是说我们可以列成是看。LN,它是获取一行的输入。它获取到一行输入能理解吗?好我们再来,那我把待会儿把这个记下来啊,它是获取到一行的输入。第二个呢,我看还有一个SCFSCF呢,它是从标准输入扫描文本,根据format参数指定的格式,将成功的读取空白分格的值保存到。
02:11
这个这个翻译的有点生硬,有点生硬啊,讲的有点太太太太生硬了,那其实我简单解释一下吧,就说你前面可以给一个格式。那根据这个格式呢,可以把这个根据你这个格式,把你传入的值呢,给到你这个变量里边去,就这个意思好了,那既然知道这两个函数的大致意思呢,我们就来直接演示,我们演示这么一个案例,要求可以从控制台接收用户的信息,接收用户的姓名。年龄还有薪水,当然我们还可以,呃,还可以接,因为没有布尔值啊,这个你看姓名是是尊类型嘛,年龄是int,呃,还有这薪水呢,是float,但是呢,没有布尔类型,我们再加一个啊,比如说是否。是否通过考试,是否通过考试。
03:05
好吧,这个呢,就可以用一个布尔值了,好同学们,我们用两种方式来获取,第一种我们先用SCF,第二个呢,我们用,呃,第一种用SCLN,再第二种我们用SCF,分别为大家介绍它是怎么来操作的,跟上老师的思路,这个这个我们在后面写代码的时候用的比较多啊,来走一个。好,我们来看看这一块的东西,叫键盘输入语句。哦,我们就直接删案例了,朋友们。第一个。标题二。那刚才呢,老师做了一些介绍,还记得吧,我们直接按案例来案例来说话了。好,走一个。把代码稍微的整理一下介绍,最终标成标题三。啊,这个摩擦是基本介绍步骤。怎么引入是吧,步骤标题三没问题。第一步。第一步导入这个包包,第二步调用。
04:04
这一个函数。或者是这个函数都可以,这两种方式都行啊,然后呢,是案例演示标题三,那这两个这两个函数的说明呢,我也顺带的放在我们的笔记里面去好不好。一个是看F。是看F这个函数的使用说明,我们拿到笔记里面去。是不是?另外呢,还有一个叫SCLN,我们把这个函数的说明呢,也拿到我们的笔记里面去,对不对,在这找一下吧,Scan LN是不在这,诶写错了,找错了啊scan。LN,在这里吧。好,实际上它就是读取一行嘛。就这个。你可以理解成SKY是读取一行数据。好,我把它也放到这里,大家看一下它的基本用法,好,那现在呢,我们就直接上案例了,我们直接算案例了,同学们。
05:05
好,把案例给大家往这边挪一挪。我们分别使用两种方式来玩一下啊,第一种就是用KN,第二种呢,我就用看F,注意听好案例演示,我们看代码直接走代码了啊,走代码。看效果,嗯,首先呢,我把这个要求我们这样子,我们先来建一个文件夹。叫DEMO67了。对吧,我们应该是单位七了。建一个新的文件夹,叫代七。DEMO07。然后呢,这里面新建一个文件叫may go。同样,我们拿一个结构出来。把这个函数的结构拿过来为我所用。零七注意看。
06:01
这里面这个函数我先不用它。来,我演示一下啊,各位把我们的要求先放到笔记里面来。我们的要求呢,是。获取这些信息对吧。跟上思路。跟上老师的思路啊,后边呢,我们会用这些东西的,来吧,我们先用第一种方式。方式一是用什么呢?用这个函数。看。SC看。看LN,也就是说我用的第一种方式啊,死看LN读取行,那现在呢,我们来做这么一个定义,我们先定义,注意定我们先定义啊,第一个我们先。声明吧,先声明需要的变量,哪些变量,姓名、年龄、薪水和是否通过考试,没问题吧?VR name是最名字,V年龄int,来个int就行,其实这个int都用不上,对吧,一个人年龄BYT就够了。
07:07
就用就够VR薪水salary。简写salary float32可以吧,再来是否通过考试,Where is pass。来一个布尔值完事,那现在呢,我们就需要给这四个变量往里面输东西,那就提示他一句话。好,这句话叫请输入,请输入姓名。OK,那怎么输进去呢?这个地方关键来了啊,点print这样写的scan。这里面传他的地址。注意,这种传递它是把这个变量的地址传到这个函数里面去了,相当于是引用传递,那在相当说在这个函数内部,我们如果给这个变量附了值,就会直接影响到这个值,还记得吧,实际上就是把这个内幕的地址传给了这个函数里边,其实它是传到这里面去了,传到里面,在函数里边它把这个值给了这个name,这样子的话呢,函数里面的值就会影响到外面的值,所以说为什么要传D值?
08:12
明白了吧,啊,传递子其实就是相当于传了个传了个引用过去,好,那其他的以此类推了,各位朋友,那还有什么说的呢?老师就不啰嗦了。好,接盘我们来。请输入姓名,打一个空格啊,打一个空格,呃,这方请输入年龄。注意啊,我为什么这要要填地址,我刚才已经解释了。因为你传地址的话,传进去才会直接影响到外面这个值,不然的话那就那就不行。然后我们再接第三个,第三个是什么呀,是薪水。薪水呢,我们这边也传一个进去叫三。好,最后一个我们要传的是什么呀?传的是是请请输入是否通过。
09:03
是否通过考试?OK,然后呢,这个地方呢,我们传的是它的这个e pass。地址这个变量的地址好传完了过后呢,这个地方它会停在这,注意听这句话啊,当一个含,当我们的程序执行到这个地后,执行到SC的时候,它会等待用户的输入。追星这句话。注意听啊,当程序。当程序执行到哪个时候呢?执行到这句话的时候,他会。停在这里就会程序。程序会停在这儿。停止在这儿。停止,在这里等待,等待用户的输入,等待。等待用户输入并回车。因为它它是按一一行来一行来读的嘛,所以你回收它就读进去了,然后它会提示这一句话又在这继续卡,卡了过后又输入,输入过后又在这卡,在等待你的输入,明白了吧,好,最后我们把这个结果输出来。
10:10
FMt.print好,我把这个结构输出来啊,这个我用这种方式来输出吧,好不好,这样好看就是。名字是。名字是好百分V好不好我们换一行,然后呢,年龄是我格式化输入年龄是来摆号V,然后呢,写个恩,没有没问题吧,然后呢。薪水。新水市。百分,然后写个N,最后一个是否通过,是否通过考试。考试OK,百分V,然后写成N,然后呢,我把这个值一起输出好不好,那就是name。然后是。Age薪水,然后是is pass。
11:04
写完了。写完。好,同学们,我们来用一用,看看能不能。跑起来。看看能不能跑起来啊。来,跑一个。CD到我们的DEMO07。是在尼七吧,然后go run。我们的命点够回车。好,同学们看到它会提示我请输入姓名,比如说我输入姓名是汤姆,请输入年龄,比如说是。20。20岁。新输输入薪水,比如说他挣了这么多钱,一个月挣这么多钱。回车是否通过考试,我们认为是处回车可以看名字是汤姆,年龄是20,薪水是好,这个输入信息完全正确。它是换行输出的,好这个第一个我们就做成了。而且呢,我告诉大家啊,你这输出这个类型呢,也是一样的,就是它输进去过后,它会自动判断类型,因此这个name呢,就是string edge就是by salary就是float is pass就是不,它输进去过后,这个值就会自动的转成这个类型,明白吧。
12:14
好,这是第一个,我们就做完了,我把这个第一个的这个。这段代码呢,给大家放在我们的笔记中去。好。这一盘为了。少几行,我把它换下。来,跟上思路。我们第一种方式就已经完成了。同学们,到时间下来过后一定要去练啊,我把它放在笔记里边去。第种模式。对吧。好,因为这个太大了,我把它缩小一下。那么我们还有第二种方式,更简单一点,就是你看这个地方,他老是一个一个输,太累了,你也可以一次性输入。那这个时候呢,我们再来看第二个案例。好,第二种方式,一次性输入。
13:00
来吧。第二种方式,方式二。我们方sir呢,使用这个方法叫format里面的叫scan。F可以,可以按指定的格式,指定的格式输入。哎,这样比较简单一点,来同学们看我怎么说啊,假设我把上面这个注销了。没有了。没有了,当然这个下面纸就没拿到嘛,我们现在现在这样说这样写啊F mt.print。提示一句话,请输入。你的。你的什么呢?把这块一下拉过来。然后提示他一句话是输入时用空格隔开,因为我们空格间隔一下啊,使用空格。空格间隔。空格隔开。好的,嗯,那现在呢,我们就来玩一把。
14:04
啊,玩一把,那就是Smt.scan。F走直接这样写了啊,大家看我这怎么写的,按格式来,第一个我要输入的是。什么呀,他的姓名就S空格。第二个我要输入是年龄,按照F来输出,大家看这个地方我怎么写,主要是取决于我们这个文档里面怎么说,大家看这里面有很多通用的格式啊,这是form麦的格式,你们自己根据实际情况来找,比如说我要输一个,呃,接收一个布尔值,那就是百分号T,我要接收一个整数,十进制的整数就是百分号D,我要接收一个字符,就是百分号C,我要接收一个,呃,比如说小数就是百分号F,一直推明白吗?好,同学们,那现在呢,我们来接着看。紧接着我们要输入这一个年啊,年龄,年龄在这儿别写错了啊。
15:01
年龄完了是否通过,通过的话等于号T对不对,好,然后这边按照顺序写进去。不要写错啊,这个地方就有一个问题了,这种方式呢,就要求我们要。小心输入,所以说这个方式呢,其实我并不推荐这种方式,它容易,它容易就是对不起对吧,或者是你呃一句一句的写也行,我这个写在一起了呢,就要求我们要严格的按照这个顺序输入,不然的话就有可能出问题,好age再来。百分号S,再来百分号is pass。好,写完了之后把它输出来。来吧。把这因为这句话我已经有了,我就不再重写。看清楚了,来玩一把。玩一把啊,玩一把。年龄四好同学们,我们来一起走一走,看看这种方式能不能也一次性成功走一个好。
16:01
他说,请输入你的姓名、年龄、薪水是否通过使用空格隔开,那就来了啊,Jerry Jackie。空格年龄呢,比如说是70,他的薪水比如说是这么多。好,来一个六。呃,是否通过考试呢?灰色。OK,你看年龄是Jackie,年龄79,薪水这么多,是否通过考试?第二种方式也成功了,好,这就是我们说的第二一种方式来输入我们的这个,呃,用户的信息啊,来得到用户输入的信息,第二种方式我把它也拿到笔记里面来。两种方式呢,我推荐同学们使用第一种好不好?是推荐使用第一种啊,需要格式化的时候,我们再用第二种就完了。把代码放到这里来。没问题吧,没问题,好同学们,那这个就是获取从控制台获取用户输入的信息呢,这两个方式我就介绍完了,后边我们在用它去打印金字塔呀,或者是用它来进行一个交互,就是控制台和和程序的交互的时候呢,我们就会经常用到这两种方式,同学们呢,可以下来好好的把它练一练,走一走。
17:21
好,关于这个输入呢,我们就先给同学们介绍的这些。
我来说两句