00:00
各位朋友,我们接着来讲勾浪语言的啊运算符,那下面呢,我们给大介绍一下未运算符,未运算符这里呢,我先说一句话啊,因为未运算符涉及到二进制相关知识,所以说我们还是放在讲二进二进制的时候再详细介绍,这里呢,我把它未运算符一共有几个呢?一共有大概五个,它的运算规则我这已经罗列出来了,我在哪里具体细致去讲呢?大家看啊,我这已经写好了,在我们的第49个幻灯片的时候,我会详细的为大家介绍位运算符和移位运算符,所以说现在呢,在这儿我们只是简单的给大家把它的。这个位运算符的大致的一个情况,罗列到这,罗列到这,做到做到,因为把它放在这个位置呢,它还是比较合理的,只是具体讲的时候,它涉及到二进制,所以说呢,我在讲二进制的时候,再详细讲解,能理解吧。好,那我还是把笔记写到这儿吧。
01:02
叫未运算符。Wait。运算符。OK为运算符。先放这。具体讲的时候在二进制说。先罗列到这里好不好放到我们的标题二。大体的情况先放这儿。各位。把未运算符的一览图放到我们的笔记里面去。五个啊,一共有五个。后边讲二进制的时候,我会一个一个的给大家介绍,而且呢,这个地方也是一个考点,所以说我会详细的给介绍的,这先把它罗列到这。那下面呢,我们再来看就是功浪里面还有哪些运算符呢?还有其他运算符,它其他运算符主要包括两个,一个呢就是取地址的运算符,一个是取指针指向的值的运算符。大家看清楚了。啊,那这个运算符我们在讲指针的时候,其实已经讲过了,还记得吧,我们在讲指针变量的时候,其实这两个运算符我们都已经提过了,只是当时呢,没有单独的把它提出来,说它是一种运算符,那既然如此呢,我们还是把它放在这。
02:17
放在我们的笔记里面去做成一个整体。好的,我呢把它放这儿,然后我们还是举两个案例,对不对,把它放到这里。走一下,还有其他运算符,主要有两个,一个呢,就是我们所说的返回变量存储地址的运算符,叫取地址符,还有一个就是取指针变量的值的运算符。那这两个运算符呢?我们还是举一个例子,放这。举例说明,看一下代码。我们现在呢,已经到DEMO05了,所以说现在应该建DEMO。零六。
03:00
OK。同样道理,我们在这里面新建一个文件,叫man顶go。然后呢,我们把把它的一个主体的结构拿过来用一下。报到这里来零六对不对。好的,然后me包起来,这一拉。我们来演示一下。演示。演示一把。演示一把什么呢?就是取地址符和星号这个符号的啊,取值指针取值的运算符的使用。那首先呢,我们还是老规矩,定一个变量VRA,比如说我定一个A这个变量,对吧?A这个变量它等于100,那么它的地址符怎么取呢?他的地址什么渠道呢。不给了,N把地址取出来吧,各位同学,A的地址是。地址是多少,我们把它打印出来就行了。这样去。
04:01
爱的符号啊,这个地址符号地子符A。这就是地址,那么我们再来看看这个指针变量的取值符号又怎么写呢?比方说我这里有个变量,指针变量,指针变量我这样写了,同学们。PDVRPTR,然后呢,新。新int还记得这样写的吧,指针指向int的一个指针变量前面,在int前面加一个心就可以了,然后呢,我们等于A。At。这个A对不对,然后呢,我们把它的值取出来。Get print。P。我们说一下PTR指向的值。指向的值是多少呢?等于一下来取出来,呃,很简单,星号PTR就可以。保存一下,我们来执行一下,看看效果怎么样。
05:01
找一个。CD点点上一节DEMO。零六,没问题吧,然后go run,我们的命顶勾跑起来看效果。同学们看效果。没问题吧,A的地址是这个的,然后PTR指向的是100,就是它吗?是不是因为我把AA的变量的地址交给了这个指针变量,我在用星号的方式把它取出来。这样子,当然。嗯,这个就是我这个PTR指向的就是A的值对不对?好这块我就不再多说了,因为我们在前面把指针这块变量已经给大家讲过了,对不对,只是相当于说把这再整理到笔记里面去。好朋友们。我把这块笔记放在我们的。这个位置。啊,大家做到心中有数。那这里呢,还有一个地方我要给大家强调一下,强调另外一个问题,就是大家如果说学过其他编程语言的话呢,都知道很多的编程语言里面都有一个叫三元运算符的东西,比如说比如像Java。
06:11
比如说像C,比如比如说像PHP,它都有三元运算符,那么在go语言里面呢,它的官方文档明确说明了没有三元运算符。没有,他不提供,那为什么他不提供呢?因为高档的设计理念是一种事情有且只有一种方法解决,完成就是他提倡的,提倡的一种代码风格是这件事情最好只有一种方式解决,当然这个其实是很难做到的,所以你在后面学的时候呢,你会发现go浪其实也有,也存在好几种形式的写法,但是在这里他没有让步。他就是没有直接支持三元运算符,那你要做三元运算符怎么做呢?很简单。他。他用这种方式来做的。就用if语句。其实大家都知道,三元运算符本质就是一个if else的分支,判断是不是,那就用这个就完了。
07:07
就用这就完了,就if,如果为真。N等于多少?如果为甲。L嘛,就不成立,第一个表达式成立,我把某个值给一个N,如果不成立,我把另外一个值给N,其实这个就是三元运算符的一种,呃,实现,因此呢,在我们的个语言里面呢,它不支持三元运算符,如果要用的话,就用if else的结构就行了,明白。啊,If的结构就行了,好的这里呢,我们就给大家介绍到这儿就行。好,我这把特别说明说一下。就是把这块呢,单独的提出来做一个特别的说明,好吧,关于。关于三元运算符的特别说明吧,不要再说三元运算符了,不然的话大家老觉得好像还有似的,对吧?特别说明那关于这块呢,我们直接把这段文字,把这个笔记放在这儿就行。
08:02
就说如果要实现三元运算符,我们就用if else的方式来做就OK,来,我把它放到这。啊,放到这儿就行。啊,我也同时给大家举个例子,举个例子举例说明啊,如何在什么呢?Go long中,Go long中实现三元运算。三元运算的效果。运算。的这种效果非常的简单啊,非常简单,那我就直接在这儿举个例子,比方说。比方说我这里有一个v rn inch。啊,Inch,然后呢,嗯,这个地方呢,我。我写一个代码。嗯,比如说vara,比如说是这个I inch。VRVR节in对吧,我直接给它赋一个值啊对不对,十。好,这个是12。
09:00
以前的三元,传统的传统的这个三元运算。他是这么写的。他这样写,比如说他会这样写,N等于,如果I大于高。啊,我就问他成不成立,如果成立,我给他假设我返回是I这个值,明白假设是这样子,否则我返回集这个值,其实传统的三元运算符就这么写的,但是呢,我们的构语言它是不支持用写法的,那怎么实现这个效果呢?非常的简单,一句话的事,If。I大于勾吗?如果大于N,就等于I。明白else else,否则的话呢,N就等于勾就完了。所以你看上面的写法呢,我们用if钥匙依然可以实现理解好,理解好,最后呢,可以把这个纸打印出来用一下就行了,比如说print。那么我们输出这个N等于多少N。
10:01
等于这个具体的值,那这个时候因为呃,I它是不大于勾的,所以说它应该返回的是12,那N就应该等于12。对不对。好,我们执行一把。跑起来看效果,我们会发现呢,它的确返回到42对不对?好效果就实现了,来把这段代码呢,给同学们放到笔记里面去。啊,放到我们的笔记里面去没问题吧,实际上就是用来实现三元运算的效果。保存一下。当然,放到笔记里面去就了。好,同学们,那关于就是我们所说的这种其他运算符需要注意的地方,我们就说到这,然后呢,我们再来举一个,呃,举两个案例来加强一下对他的理解,这里面有些课堂案例,我们一起来做一下。好,其他运算符的案例我们写到这吧。
11:02
课堂案例走一个。来一个标题三对不对。来个标题上走一个吧,嗯,具体的案例呢,是这样子布置的,说请你求出两个数的最大值和求出三个数的最大值,那我们一起来完成。第一个案例是求出两个数最大值,第二个案例求出三个数的最大值,来,我们一起做一做。同样的道理,那这时呢,我们再建一个新的文件夹,叫。在这个地方我们新建一个文件夹,第三个案例。第三个练习对不对,Exec。零三。那我们写一个文件叫main顶构。好,然后呢,还是老规矩,把前面的这一部分拿过来为我所用,我就不再反复的写了。好走一个,他第一个要求是什么要求我们看一下,他说求出两个数的最大值。
12:03
简单,我们来一起看一看。那我先定义两个数吧,VR。N1T假设呢是10VRN2。假设呢是事实。啊,求这两个数最大值非常简单,就如果N1大于N2怎么办呢?好,我们定义一个最大值。Max。In值,那如果N1大于二,那么我们就把最大值把N1。交给他,Else如果不成立的话。如果他们不成立的话,那么max就等于N2就完了,非常简单,是不是这样就求出了两个数里面的最大值,我们打印出来。Print and。好,这个单词写错了。Print,那么我们求出max等于多少呢?Max。等于输出它。
13:04
同学们,我们来执行一下。CD点点ex ec03进去了,然后呢,Go wrong一下。跑起来。哦,这边代码有问题。但没问题,看问题在什么地方。Fmt。诶,这个为什么为NFT保存一下。哎哦,Printt啊,PR这写错了,PRPRPL。啊,这样就没错了,刚才因为单词写错了。再来一下,跑起来。这个时候max应该等于40对不对,这个时候max没问题,第一个题咱们就做成功了,那问题来了,第三他说三个数字最大值,咱们怎么做呢?来。这是。第一个我们就完成,他说要求出三个数里面的最大值,这个又怎么做,非常简单,在上面加一步,因为现在呢,我已经有三个数,假设我还有个数叫N3,比如这个N3呢,等于45。
14:09
那现在怎么做,因为我这个max已经是两个数里面最大值了,对不对。那假设我要求第求三个数的。求出。求求出啊,求出。三个数的最大值。最大值。的思路。我们把思路分析一下,就是先。它的名字就先求出,求出两个数的最大值。然后。然后怎么样呢?诶,然后让。让。这个最大值。最大值和第三个数进比较,第三个数进行比较。比较啊,再求出最大值。再求出,再取出最大值即可,那也就是说我现在max已经是N1和N2里面最大的,那这个你再来一个第三个数,那就简单了吗?我把这个逻辑再重新做一下不就完了吗?就这样写就行了,如果我这个N3。
15:13
大于max。那就一句话,Max。等于N3完事。其他不用做了,你看啊,如果N3大于max,我就把N3交给。Max就行,如果N3不大于max呢,那max还是保持原来的值就可以了,是不是?所以说如果是这样求的话,三个数里面最大值我们就可以求出来了。三个数中。数中最大值是。是多少呢?好,求出来。Max。好,同学们,我们再执行一把。这个时候最大值应该是45了。对吧,你看三个数里面最大值是45,同样,呃,这个逻辑就就就在这个基础上加一下就行了,没问题吧,比较简单。
16:03
我把这一段代码呢,放在我们的笔记里面去。好的。这是求三个数的最大值的一种思路和解决方法。当然,我们以后还可以把它封装成一个函数,就更简单了。好的同学们,那关于我们这说的其他运算符呢,要给大家讲的也就是这些,大家要做一个了解,做一个了解,这里面主要是讲了求地址符和取指针取值的一个运算符。OK,好,就先介绍这里。
我来说两句