因势而变,因时而动,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang泛型(generic)的使用EP15

作者&投稿:聊建 (若有异议请与网页底部的电邮联系)
~ 事实上,泛型是Go lang1.18的一大亮点,但为何我们要在后期才深入探讨它呢?用比喻来说,就像给一年级的小学生讲解王勃的《滕王阁序》,他们能有多大几率理解作者的抱负和失意情绪?恐怕很难。的确,若没有对Go lang的强类型语法一定的了解,就难以理解泛型这种与静态语言概念相悖的特性。

什么是泛型?泛型,顾名思义,就是通用的类型。简单来说,它是在静态类型语言中使用动态类型语言特性的方法。比如,一个函数能实现两个字符串的合并,参数声明了字符串,也就不支持其他数据类型。但如果需要两个整数求和的函数呢?那就需要再写一个类似的函数,这样就影响了代码的逻辑复用性。泛型的意义在于,在相同的逻辑下,可以针对不同的数据类型进行泛用。

在Go lang中,泛型使用 [] 来声明类型范围。如果是多个数据类型,可以使用|分隔。这里定义了一个泛型变量v,可以是整数、浮点或字符串。注意,由于参数类型未定,所以返回值也必须是泛型类型。现在动态地把参数改为整数,返回值也会随之改变。这样,我们就声明了一个可以“泛用”的函数。

泛型的出现不仅丰富了函数的声明和构建,更多地在战略层面提供了多样化选择,比如容器内的类型,例如队列。这里结构体的类型约束使用了空接口,代表所有类型都可以用来实例化泛型类型。同时基于泛型结构体,我们定义了两个方法:入队和出队。因为这个队列是泛型队列,所以队内元素的类型可以在实现结构体接口时进行定义。

在Go lang中,我们经常使用匿名函数。大体上,它们和Python的lambda表达式类似。如果封装的逻辑相对简单或者和上下游逻辑连贯性较强,那么,在不影响代码可读性的前提下,我们没必要单独声明一个函数,而是选择匿名函数。但1.18版本中,匿名函数并不支持参数为泛型,因为匿名函数不能自己定义类型形参。但匿名函数可以使用已经被合法定义的泛型类型。也就是说,在泛型函数内,我们可以通过匿名函数对逻辑进行二次封装。

同样地,1.18版本中的方法也不支持泛型。但和匿名函数类似,因为receiver支持泛型,所以我们可以声明结构体内receiver的参数为泛型类型。因为receiver声明了泛型参数,我们为结构体A绑定的方法也可以直接使用声明好的泛型类型,和匿名函数直接用父级泛型是一个意思。

事实上,静态语言在设计上基本都有泛型的概念,这并不是自我矛盾。对应的,在动态语言为函数声明形参时,我们其实也可以指定具体的参数类型或返回值类型。真正的高手,可以脱离语言类型的桎梏,达到一种无我无众生的境界。比如,在固有思维模式中,降龙十八掌是一种至刚至猛的武功,威力无穷,无坚不摧,但郭大侠后期再使用这门神功时,降龙十八掌的劲力忽强忽弱,忽吞忽吐,从至刚之中竟生出至柔的妙用,那已是洪七公当年所领悟不到的境界。所以,刚柔并济、虚中有实、实中有虚、虚实相生才是泛型使用的最高境界。


因势而变,因时而动,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang泛 ...
真正的高手,可以脱离语言类型的桎梏,达到一种无我无众生的境界。比如,在固有思维模式中,降龙十八掌是一种至刚至猛的武功,威力无穷,无坚不摧,但郭大侠后期再使用这门神功时,降龙十八掌的劲力忽强忽弱,忽吞忽吐,从至刚之中竟生出至柔的妙用,那已是洪七公当年所领悟不到的境界。所以,刚柔...

因时而进,因事而化,因势而新什么意思
随着时代而前进,按照事情的实际情况进行变化,结合形势做出新的应对方案。需要把握“事”与“化”、“时”与“进”、“势”与“新”之间的辩证关系,知其“固然”,更知其“所以然”。要以敢为人先诠释担当作为,把心思集中在“想干事”上、把本领体现在“会干事”上、把目标锁定在“干成事”上,...

因时而动,顺势而为,乘势而上,善于把握和抓稳经济守正创新
发展是经济建设的核心,要在变动的环境中因时而动、顺势而为、乘势而上。把握和抓稳经济守正创新,需要我们不断思考和实践。曾经沧海难为水,除却巫山不是云,指的是对经济演变的思考,几处早莺争暖树,谁家新燕啄春泥,是对新经济新业态的看法,莫愁前路无知己,天下谁人不识君,是对经济发展的展...

应时而动,顺势而为,后面是什么
应时而动,顺势而为后面:乘势而上。意思是说,有远见的人会准备好,在合适的时候做出行动,顺着当时的形势,做出判断,再有所作为。为人处事的一种态度。顺势而为的经典名言:1、老子说:“上善若水,水善利万物而不争,此乃谦下之德也;故江海所以能为百谷王者,以其善下之,则能为百谷王。...

"山因势而变,水因时而变,人因思而变 "有什么深意?
每种事物都会因其自身的原因而改变,而人是因为会思考

上善若水,水利万物而不争。处众人之所恶,故几于到。
世界上最柔的东西莫过于水,然而它却能穿透最为坚硬的东西,没有什么能超过它,例如滴水穿石,这就是“柔德”所在。所以说弱能胜强,柔可克刚。上善若水。水善利万物,而不争;处众人之所恶,故几于道。居善地,心善渊,与善仁,言善信,政善治,事善能,动善时。夫唯不争,故无尤。“...

因势而变是法家思想吗
该思想是法家思想。因时而变、与时俱进,乃法家之所倡,亦其精髓也。后世儒者虽好厚古薄今,胜推三代之隆,亦不能改回三代。法家主张“俗”是因时而变的。王莽效仿周制改制,不合其时,天下遂乱。说文》言:“俗,习也,习者,数飞也。”“俗”是反复练习并以此形成稳定的文化传统,即习俗...

陈东升的成功秘诀
陈东升的成功秘诀是因时而生、因市而兴、因势而变。1、因时而生 因时而生的法则永远都存在,创业的时候一定要选一个刚萌芽、未来高成长的行业。严格来讲,这是一个创业的源头,甚至可以讲是创业的法宝。2、因市而兴 因市而兴说的是发展,泰康发展最快的阶段是中国加入WTO之后,企业一定要根据市...

灵活用兵的五项基本原则是什么?
战争指导者要巧借天时,还要会妙用地利,根据战场环境摆兵布阵。3.因敌用兵-对什么敌人打什么 4.因己用兵-有什么条件打什么仗,并最善于择军选将 5.因势用兵-势指态势、气势。简明地说,"势"是"形"的运用,也就是军队实力的发挥。因势用兵,要因势而乘,因势而动。

:因时而立 因势而为 吾虽不济 尔亦不为呼?这句话什么意思
句中的“呼”应为“乎”。意思是:根据不同时期的具体情况而立身处世,顺应客观事物的发展趋势而采取行动(有所作为)。我就算不能成事,(难道)你也不有所作为吗?

黔江区18986736685: 根据事物的特征加以利用,动作或运动不受阻碍成语 -
潜婷耐信:[答案] 因势而动 【拼音】yīn shì ér dòng 【解释】因:依据;势:趋势.顺着事情的发展趋势来行动. 【出处】清·陈光宪《历代名将事略·先击》:“如敌之强实强于我,我先攻其弱,无损其强,而力已疲矣.先强先弱,总在因势而动.”

黔江区18986736685: 类似于上善若水的成语 -
潜婷耐信: “上善若水”语出《老子》第八章 “上善若水.水善利万物而不争,处众人之所恶,故几于道. 居善地,心善渊,与善仁,言善信,政善治,事善能,动善时.夫唯不争,故无尤. ”老子说:“上善若水”,“水善利万物而不争,处众人之所...

黔江区18986736685: 企业文化中哪些经典的语录 -
潜婷耐信: 先思后动,顺势而为!

黔江区18986736685: 什么是“因时顺势而变” -
潜婷耐信: 把握时机,把握机会,完成自己的目标

黔江区18986736685: 带有 因势 的成语 -
潜婷耐信: 【因势乘便】 根据形势顺便达到目的.【因势而动】 因:依据;势:趋势.顺着事情的发展趋势来行动.【因势利导】 因:顺着;势:趋势;利导:引导.顺着事情发展的趋势,加以引导.【因势顺导】 因:顺着;势:趋势;顺导:引导.顺着事情发展的趋势,加以引导.

黔江区18986736685: 带有因势的成语 -
潜婷耐信: 因势利导 [yīn shì lì dǎo] [解释] 因:顺着;势:趋势;利导:引导.顺着事情发展的趋势,加以引导. [出自] 《史记·孙子吴起列传》:“善战者;因其势而利导之.” 因势乘便、 因势利导、 因势而动、 因势顺导

黔江区18986736685: 成语x势xx -
潜婷耐信: 成语x势xx :声势浩大、声势赫奕、气势磅礴、形势逼人、大势所趋、大势已去、时势造英雄、仗势欺人、来势汹汹、蓄势待发、病势尪羸、审势相机、倚势凌人、声势烜赫、因势而动、家势中落、因势乘便、见势不妙、气势非凡、审势而行、挟势弄权、形势之途、因势利导、鹤势螂形、趋势附热、爱势贪财、趁势落篷、窃势拥权、倚势挟权、乘势使气、怙势凌弱、因势顺导、声势熏灼......

黔江区18986736685: 世界围棋大赛中用到最多的战术是哪些?
潜婷耐信: 这个题太难答了,围棋很少能有一套贯彻始终的“战术”,围棋讲究的是流畅自然,因势而动,因为是两个人一人一手下的,对方的意图我要去打破,我得想法,对方也要阻止,不仅仅拼的是计算,气势,心理甚至胆略.兵无常势,水无常形,...

黔江区18986736685: 写出一个带有因势的成语
潜婷耐信: 因势利导

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网