go语言cobra Go语言面试题

百战程序员:编程语言到底有多少种?

这个有很多种的,下面讲解写常遇到的。把编程语言比喻成车:

创新互联专业为企业提供滨海网站建设、滨海做网站、滨海网站设计、滨海网站制作等企业网站建设、网页设计与制作、滨海企业网站模板建站服务,十余年滨海做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

Ada 是辆丑到极点但是永远不会出故障的坦克。

C 是辆赛车,它能跑得超乎想象得快,不过每跑个 50 英里就会抛锚。

Cobol 号称是辆车,不过没有哪个有自尊心的驾驶员肯承认曾经开过。

C# 是辆竞争模式的家庭旅行车。一旦你开过它,你就不会再用其他竞品厂商的产品了。

C++ 是辆大马力版本的 C 型赛车,它额外提供了成打的特性,而且每跑 250 英里才会抛锚,不过当它真出问题的时候,没有人能找到究竟是哪儿坏了。

Eiffel 是辆内置了法国口音驾驶说明的汽车。他会帮你快速地找到错误并从中学到东西,不过你要是敢跟他争论的话,他会骂你然后把你从车里扔出去。[来自 Daniel Prager ,稍有修改]

Erlang 是一个车队,它们会互相协作把你送到任何你想去的地方。想要每只脚各自操纵一辆车还是需要一些练习的,不过一旦学会了之后你就可以驾驶着它们通往其他方式难以企及的地方了。还有,你用了那么多辆车,所以就算有几辆坏掉也没什么可担心的。

Forth  是你亲手用套件组装出来的车。你这辆车不论长相还是功能都没必要和别人的一样。不过,Forth 型号的车只能倒着走。

[Digg.com 网站上的评论,来自 256byteram(我忍不住要把它加上):]

FORTH LOVE IF HONK THEN !(译注:抱歉我实在不知道这句话是啥意思……)

Fortran 是辆非常原始的车。它能跑得很快,前提是你要始终在完全笔直的道路上开。据说学开 Fortran 型汽车会导致你再也没法学开其他型号的汽车了。

Java

Java 是辆家庭旅行车。它驾驶起来很容易,开起来速度也不会太快,不至于伤到你自己。

版本1:Haskell 是辆设计极端优雅漂亮的车,传闻它能开到非常极端的地形中去。当你试图驾驶它的时候,它并不是真的沿着道路在前进的;实际上,它是不断把自己和道路进行复制,每次成功复制之后,车在路上都会比上一次更远一点。应该还是有可能按照传统的方式来驾驶它的,不过你的数学能力不足以找出这个办法来。

版本2:Haskell 并不是辆真的车,它是一个抽象的机器,能够详细地告诉你驾驶这个过程应该是什么样子的,如果你愿意的话。你必须把这个抽象的机器放到另一台实际的机器里面才能开动它,别问这个实际的机器是怎么运行的。还有一种方法,你可以用多台抽象的机器造出另一台抽象的机器,然后把它交给那台实际的机器,这样就能一个接一个地完成你的旅途了。[Monadic 的版本]

版本1:Lisp 看起来像一辆车,不过经过足够的改装,就能把它变成非常有效的一架飞机或一艘潜艇。

版本2:一开始它看起来一点儿都不像一辆车,不过时不时地你也能看到有人在开着它转悠。终于有一天你决定多了解一下它,然后你意识到它其实是一辆能造出更多汽车的汽车。你把这个发现告诉了朋友,不过他们都大笑着说这些车看起来太奇怪了。至今你仍在车库里留着一辆,期待着哪天能把它开上路去。[来自 Paul Tanimoto]

Mathematica 是辆设计得很好的车,它从 Lisp 型汽车那里借鉴了大量的东西,却连一点儿应得的赞扬都不给它。它能通过方程计算出到达目的地最高效的路径,只不过这要花上一大笔钱。

是辆设计给新手用的短途旅行车,通常都是开往那些 Mathmatica 型汽车常去的地方。在那些地方这车开起来非常舒服,不过只要你偏离了路线,哪怕只有一点点,它就会变得非常难以驾驭,以致于很多势利的司机根本就不承认它是一辆车。

Ocaml 是辆非常性感的欧洲车。它不像 C 那么快,但它从不出故障,所以结果你反而会花更短的时间到达目的地。不过因为这是法国,所有的控制装置都不在它们平时该在的地方。

Perl 应该是辆挺酷的车,不过驾驶员手册却难以理解。另外,就算你能找到方法去驾驶一辆 Perl 型号的车,你也开不起来别人的 Perl 型汽车。

PHP 是辆热狗车(Oscar Mayer Wienermobile),它非常古怪、又难以驾驭,但是所有人却还是想开它。[来自 digg.com 网站的 CosmicJustice]

版本1:Prolog 是全自动的:你告诉它你的目的地是什么样子的,然后剩下的驾驶工作它就全搞定了。[Paul Graham附加的:]不过,大多数情况下,确认目的地所花的工夫,和你直接开过去也差不多了。

版本2:Prolog 这辆车上装了一个独特的试错型 GPS 系统。在通往目的地的路上,它会一直往前开,如果走到死胡同了,它就调头回来再试试别的路,如此不断往复,一直到目的地为止。[我忘了是谁建议的这一条]

Python 是辆非常棒的给初学者用的车,就算没有驾照也能开。除非你想开得超级快,或者想开去很危险的地方,否则你可能永远都用不到别的车。

Ruby 这辆车是因为一次 Perl、Python 和 Smalltalk 三车相撞事故产生的。一个日本的机师找到了这些车的碎片然后拼成了一辆车,很多司机都觉得这比那三辆车加在一起还要好。不过也有些司机会发牢骚说 Ruby 型汽车的好多控制器都是重复的、甚至有三份,而这些重复的控制器在某些特别的情况下又稍有不同,这会让这车开起来更麻烦。据传说重新设计的工作已经在进行中了。

Smalltalk 是辆小型汽车,原本是设计给那些打算学驾驶的人用的,不过因为它设计得太棒了,即使那些有经验的老司机都喜欢开它。它速度并没有很快,不过你可以把它的任何一个零部件拿下来改造改造,让它更符合你的期待。古怪的事情是,你其实并没有真正地驾驶它,你只是发了条消息让它去什么地方,然后它要么就开过去了,要么就告诉你它不懂你在说啥。

版本1:汇编就只是个发动机。你得自己把车子造出来,还得在它跑的时候手动给它加油。不过只要你足够小心,它就能像来自地狱的蝙蝠(a bat out of hell)一样飞速前进。

版本2:汇编:你自己就是那辆车。

如果编程语言是种武器:

C 语言是 M1 式加兰德步枪,很老但可靠。

C++是双截棍,挥舞起来很强悍,很吸引人,但需要你多年的磨练来掌握,很多人希望改用别的武器。

Java 是 M240 通用弹夹式自动机枪,有时它的弹夹是圆的,但有时候不是,如果不是,当你开火时,会遇到 NullPointerException 问题,枪就会爆炸,你被炸死。

Scala 是 M240 通用机枪的变种,但它的使用手册是用一种看不懂的方言写的,很多人怀疑那只是一些梦话。

JavaScript 是一把宝剑,但没有剑柄。

Go 语言是一种自制的“if err != nil”发令枪,每一次发射后,你都必须要检查它是否真的发射了。

Rust 语言是一种 3D 打印出的枪。将来也许真的能派上用场。

bash 是一个十分碍手的锤子,你抡起它时会发现所有东西看起来都像钉子,尤其是你的指头。

Ruby 是一把外嵌红宝石的宝刀,人们使用它通常是因为看起来很炫。

PHP 是水管子,你通常会把它的一段接到汽车的排气管,另一端插进车窗里,然后你坐进车里,开动引擎。

Mathematica 是一种地球低轨道粒子大炮,它也许能够干出很神奇的事情,但只有付得起费用的人才能使用它。

C#是一种强悍的激光大炮,架在一头驴子上,如果从驴子上卸下来,它好像就发不出激光。

Prolog 语言是一种人工智能武器,你告诉它要做什么,它会照做不误,但之后,它会弄几个终结者出来,烧掉你的房子。

Lisp 语言是一把剃须刀,有很多款式。只有寻求刺激和危险的人才会使用它。

希望可以帮到您,谢谢!

golang性能测试框架k6源码分析

k6是新兴的性能测试框架,比肩jmeter,另外测试脚本使用js,更加适合自动化的架构。

k6启动的框架是使用golang的cli标准框架cobra,入口函数

进入cobra框架后,我们直接查看getRunCmd,这个是命令run的入口,主要工作都是从这里开始。

重点关注初始化Runner,这个是通过js脚本,使用goja库解析后,生成的实际执行单元。

进入js目录,查看Runner的结构,runner.go

Runner有一些配置属性,另外还有方法,方法用lib.Runner的接口进行规范。

Runner有一个NewVU方法,里面定义了连接参数,实现api测试

返回主函数,在初始化完成Runner后,启动调度器,以及做结果收集

最终封装成一个engine

启动测试

怎样快速地进行记忆(尤其是语文、英语)

(2) 改变词中字母倍增词汇

gram 克

epigram 警句

grim 无情的

pilgrim 朝圣者

(3) 改变词尾字母倍增词汇

rub 摩擦

drub 敲击

rug 地毯

drug 药品

rum 甜酒

drum 鼓声

六、改变机械记忆

近百年来,我们墨守先数字母后记单词和从左至右的顺序的陈旧观念和方法,片面地强调机械记忆和模仿记忆,长期陷入单纯的应试教育而不能自拔。英语词汇逻辑记忆法提出的以词为单位的基本思路完全可以改变机械记忆和模仿记忆的被动局面,用积极的、主动的记忆代替消极的、被动的记忆。我们用20讲的时间所要讲述的,其实就是一个内容,如何以词为单位强化记忆和扩展词汇量,请广大观众予以注意。

equinox 昼夜平分时;二分点

vernal equinox 春分

autumnal equinox 秋分

能否记住“春分”和“秋分”,关键在于能否记住 equinox 这个词。 现在我们运用英语词汇逻辑记忆法正向记忆原则,在 equinox 一词中找出“ nox ”一词。“ Nox ”是罗马古典神话中的夜女神,是“ 夜 ”的含义,“ equi ”是“ 等于 ”之意,所以,equinox 是“昼夜平分时”, 意为把白昼和黑夜分成相等的两个部分。假如取“二分点”之意,那就是太阳在天球上一年两次经过天赤道的时刻,以全球昼夜等长为特征,出现在仲春或仲秋季节的日夜分,叫做“春分”或“秋分”。因此,能记住 nox 就能记住 equinox ,而能记住equinox ,就能记住 vernalequinox 和 autumnal equinox 。

solstice 至点

summer solstice 夏至

winter solstice 冬至

“ Sol ”是罗马古典神话中的太阳神,是“太阳”的含义,“ stice ”虽然不是一个英语词,但我们可以把它理解为“到达”之意,意为太阳光直射的地点,所以,我们就能记住 summer stice 和 winter stice 终生不忘。

第六讲 建立逻辑思维的记忆模式 (二)

第七讲 建立逻辑思维的记忆模式 (三)

三、建立逻辑推理的思维模式

各个民族,各个国家,由于他们在政治、经济、社会、文化、宗教、地理、风俗、习惯等诸方面的不同,因而他们的思维方式和表达方法必然是千差万别的。但是,每个民族,每个国家,在使用逻辑思维这一点上却是共同的。所以,我们必须了解英语的逻辑思维规律及其特有的表达方式,特别是他们与汉语的逻辑思维规律与表达方法的异同。这就是说,逻辑思维应当成为架设在英汉两种语言之间的记忆桥梁,应当成为我们中国人跨越英语词汇海洋到达彼岸的一艘永不沉没的渡轮。

spearmint 留兰香

spear 茅;芽

mint 造币厂;薄荷

首先,以词为单位分解“ spearmint ”为“ spear ”和“ mint ”。假如选“茅”与“造币厂”的含义,则与“留兰香”毫无关联。假如选取“芽”与“薄荷”的含义,那么,“芽”的颜色是淡绿色的,“ spearmint ”就是“绿薄荷”,而“绿薄荷”的学名正是“留兰香”,“留兰香”的俗名正是“绿薄荷”。

四、建立英语汉译纠错模式

当我们的英语词汇积累到一定数量的时候,就会想当然地按英语字面的意思去进行汉译,结果与英语实际意义相去甚远,造成歧义或误解。所以,我们必须学会运用逻辑推理的方法和手段,建立英语汉译的纠错模式。

Milky way 银河 误译:牛奶路

morning glory 牵牛花 误译:早晨的荣光

dogfish 星鲨 误译:狗鱼

horsefeathers 梦呓 误译:马鬃

tomcat 雄猫 误译:母猫

由于没有掌握英汉两种语言的词汇在逻辑上的联系,历史上把“ Milky way ”误译为“ 牛奶路”的错误,在现实中依然是屡见不鲜。 例如, 把 “morningglory”(牵牛花)误译为“早晨的荣光”;把“ horsefeathers” ( 梦呓 ) 误译为 “ 马鬃”;把“ tomcat ”( 雄猫 ) 误译为“ 母猫 ”,把 “ dogfish ”( 星鲨) 误译为“狗鱼”等等。

gold 金

fish 鱼

goldfish 金鱼

dog 狗

fish 鱼

dogfish 星鲨(狗鱼)

由于英语“ goldfish ”一词与汉语“金鱼”一词在结构和思路上基本雷同,因而就把“ dogfish ”误译为“狗鱼”。其实, 英语“狗鱼”另有其名:pike。 “ dogfish ”与“ seadog”为同义词,意思是说,这种鱼像海洋里的狗一样凶猛,所以是“星鲨”或“角鲨”。

horse 马

feathers 羽毛

horsefeathers 梦呓(马鬃)

“ horsefeathers ”不等于“ hoese+feathers ”。 无论是中国的马还是美国的马,均不可能长出羽毛,所以,“ horsefeathers”不可能是“马鬃”,“马鬃”在英语中另有其词:“ horsemane ”。既然马的身上不能长出羽毛, 为什么有人硬要说能长出羽毛呢?显然,该词的含义是“梦呓”,“白日梦”,“想入非非”。假如某人没有做梦,还说马的身上能长出羽毛,那么该词的含义是“胡说”。

有些资料把美国的F-14“雄猫式”战斗机译为“母猫式”战斗机,这是不对的。tom “公的”,“雄的”,“ tomcat ”显然是“雄猫”。美国奉行战略威慑理论,他不可能把其F_14 “ tomcat”命名为“母猫式”战斗机。所以,美国既有“cobra”(眼镜蛇式战斗机),又有“ seacobra ”(海上眼镜蛇)“ skycobra ”(空中眼镜蛇),“ supercobra ”(超级眼镜蛇)等战斗机型。

velvet glove air-to-air missile

把加拿大“ velvet glove air-to-air missile ”译成“天鹅绒手套式空空导弹”显然是误译。英语中有一个成语:“ an iron hand in the velvet glove ”,所以该导弹应译为“笑里藏刀式”,“口蜜腹剑式”或“外柔内刚式”空空导弹。

五、建立汉语英译纠错模式

当我们的英语词汇积累到一定数量的时候,就会想当然地按照汉语的思路去理解或“创造”英语词汇。所以,我们必须学会运用逻辑推理的方法和手段,建立汉语英译的纠错模式。

红宝石 ruby 红色的宝石 red gem

蓝宝石 sapphire 蓝色的宝石 blue gem

绿宝石 emerald 绿色的宝石 green gem

在一般情况下,我们很容易把“红宝石”误认为是“ red gem ”。但是, 当我们遇到“红宝石”是“ ruby ”而不是“ red gem ”时, 那么我们至少应当做两件事,第一,立即调整我们的原有思路,接受英语“ ruby ”扬弃汉语“ redgem ”;第二,我们应当进行逻辑推理,意识到“蓝宝石”可能不是“ blue gem ”,“绿宝石”可能不是“ green gem ”。事实上,英语“蓝宝石”是“ sapphire ”,“绿宝石”是“ emerald ”。 红宝石 ruby 红色的宝石 red gem。

上述情况相当于汉语中某些词的思路,例如,“白菜”不等于“白色的菜”,因为有些菜比“白菜”还白,但不能叫做“白菜”。同样,“黄瓜”不等于“黄色的瓜”,“绿豆”不等于“绿色的豆子”,等等。

第三讲 更新旧有的思维模式 (一)

一、更新纯生词思维模式

我们把老师没教的词,没记住的词,不认识的词,通称为生词。这种纯生词的记忆模式严重地束缚了英语学习者的聪明和才智。

lone 孤独的

clone 克隆,无性繁殖

在记住“ lone ”的基础上,只要在该词的词首加一个字母“c”,所谓生词“ clone ”就会记住不忘。

sturgeon 鲟鱼

s-urgeon 军医

在记住“ surgeon ”的基础上, 只要在该词的第一个字母之后添加一个字母“ t ”,所谓生词“ sturgeon ”就会过目不忘。

comet 慧星

come- 来

在记住“come”的基础上,只要在该词的词尾加一个字母“ t ”, 所谓生词“ comet ”就会终生难忘。

可见,只要我们更新纯生词的记忆模式,不把某一个词在词首、词中或词尾仅有某一个字母不认识的词当成生词的话,那么,每个英语学习者的词汇量就会成倍或成几倍的增加。

二、更新同义词思维模式

我们过去是把意义相同或相近的词放到一起去记,可以称之为同义词记忆法。现在我们采用英语广义同义词和汉语广义同义词两种方法,用以更新同义词的记忆模式,从而强化记忆,进一步加深对同义词词群的理解和运用。

(1)英语广义同义词

assassinate 暗杀

bloodbath 屠杀

butcher 屠杀

carnage 屠杀

hecatomb 屠杀

kill 杀死

massacre 屠杀

murder 谋杀

slay 屠杀

slaughter 屠杀

suicide 自杀

假如不从英语广义同义词这个角度出发,我们就很难把这些意义相同或相近的词集中在一起记忆。假如不选用 “ massacre ”这个词, 我们就不能用准确无误的词汇来描述1937年12月13日日本军国主义在我国南京有组织、有计划地实施惨绝人寰的大屠杀,而当时国际上的新闻传媒也都毫无例外地使用了massacre一词来抨击和揭露日本军国主义的暴行。

(2)汉语广义同义词

halfway 半路

hemisphere 半球

midnight 半夜

peninsula 半岛

radius 半径

semiconductor 半导体

假如不从汉语广义同义词这个角度出发,我们就很难把这些意义相同或相近的词集中在一起记忆,因而在理解和使用的过程中就会产生误用和误译的现象。

三、更新反义词思维模式

(1)对应记忆

把意义相反或相对的一组词集中在一起记忆,这是传统的反义词记忆法。这种方法对我们理解和记忆词汇是有益处的。

lithe_______rigid

柔软的 刚硬的

profane_____pious

亵渎的 虔诚的

(2)词缀记忆

所谓词缀记忆,就是指我们采用为某一具体词汇添加前缀或后缀的方法来强化对反义词的记忆。

添加前缀 un- 表示“不”:

sophisticted 老于世故的

unsophisticated 天真无邪的

添加具有相反意义的后缀 -ful 和 -less:

harm 伤害

harmful 有害的

harmless 无害的

(3)结构记忆

所谓结构记忆,就是指我们利用某一个或某几个具体词汇的前部结构相同或后部结构相同来强化对反义词的记忆。

前部结构相同,均为 centr ,i 为连接字母:

centre 中心

centrifugal 离心的

centripetal 向心的

后部结构相同,均为 anthropic,前缀 mis- 表示“不”,前缀phil- 表示“喜欢”。

anthropic 人类的

misanthropic 愤世嫉俗的

philanthropic 乐善好施的

(4)多角度记忆

所谓多角度记忆,就是指我们利用某一个具体词汇所具有的某几个不同的意义同不同词汇组成的反义词来强化对反义词的记忆。

permanent _______ evanesent

持久的 短暂的

permanent _______ mutable

固定的 无常的

permanent _______ temporary

永久的 暂时的

第四讲 更新旧有的思维模式 (二)

所谓更新单一词类记忆模式,就是指我们利用相同词缀或相同结构实现词类的转移,进而增加词汇,扩大词汇量。

(1)同缀记忆

dread ———— dreadless ———— dreadlessness

畏惧 无畏的 无畏

end ———— endless ———— endlessness

末端 无边无际的 无边无际

hope ———— hopeless ———— hopelessness

希望 绝望的 绝望

match ———— matchless ———— matchlessness

匹配 无与伦比的 无与伦比

self ———— selfless ———— selflessness

私心 无私的 无私

weight ———— weightless———— weightlessness

重量 失重的 失重

(2)同构记忆

apology ———— apologize

道歉 表示道歉

energy ———— energyze

能量 加强

sympothy———— sympothize

同情 表示同情

maximal ———— maximize ———— maximum

最大的 使增到最大 最大量

minimal ———— minimize ———— minimum

最小的 使减到最小 最小量

optimal ———— optimize ———— optimum

最佳的 使最佳 最佳条件

mater ———— maternal ———— matrimony

母亲 母系的 婚姻

pater ———— paternal ———— patrimony

父亲 父系的 遗产

五、更新单一词汇记忆模式

(1)英语主题词

当遇到某一个英语具体词时,我们就应当有意识地更新单一词汇记忆模式,逐渐培养自己掌握用英语主题词扩展词汇的能力。当遇到“ colour ”一词时,我们就应当联想到太阳光七种颜色的英语词汇。

red 红色的

orange 橙色

yellow 黄色

green 绿色

blue 蓝色

indigo 靛青

violet 紫色

red 红色的

infra- 在...下

infrared ray 红外线

violet 紫色

ultra- 超过

ultraviolet 紫外线

根据物理学知识,红色光的光波最长,比红色光的光波还长的不可见光,英语含义为“在红光之下的光”即为“红外线”。同理,紫色光的光波最短,比紫色光的光波还短的不可见光,英语的含义为“超过紫色光波的光”即为“紫外线”。

(2)汉语主题词

当遇到某一个汉语具体词时,我们就应当有意识地更新单一词汇记忆模式,逐渐培养自己掌握用汉语主题词带英语词的能力。

当遇到“动物”一词时,我们就应当在自己的头脑中,尽可能多地重现相应的英语词汇。当遇到“植物”一词时,就应当重现有关植物的英语词汇。

当遇到科技词汇中的“粒子”,就应当记住相应的英语词汇:

原子 atom

分子 molecule

离子 ion

电子 electron

中子 neutron

核子 nucleon

质子 proton

介子 meson

量子 quantum

声子 phonon

光子 photon

掌握主题词最好是遵循宜少不宜多、由易到难、灵活排序、逐渐增加容量等原则。

第五讲 建立逻辑思维的记忆模式 (一)

一、建立运动记忆的模式

传统记忆法的最大弊病之一就是静止记忆,现在我们用逻辑记忆法的运动记忆来代替静止记忆,最大限度地克服遗忘带来的障碍和烦恼,为英语学习者打开英语词汇王国的大门。

所谓静止记忆模式,就是指直观的、孤立的、简单的记忆模式。

所谓运动记忆,主要是指当我们遇到一个具体单词时,通过添加或改变字母的方式增加词汇,帮助英语学习者强化记忆,扩展词汇量。

(1)左向运动

所谓左向运动,主要是指当我们遇到一个具体单词时,通过添加字母或单词向该词的左侧扩展词汇。

slaughter ———— laughter

屠杀 笑声

(2)右向运动

所谓右向运动,主要是指当我们遇到一个具体单词时,通过添加字母或单词向该词的右侧扩展词汇。

flak ————— flake

高射炮 薄片

(3)左右运动

所谓左右运动,主要是指当我们遇到一个具体单词时,通过添加字母或单词向该词的左侧和右侧扩展词汇。

( ram ) ramshackle ———— shackle ———— hackle

猛撞 摇摇欲坠的 镣铐 禽鸟的颈毛

(4)上向运动

所谓上向运动,主要是指当我们遇到一个具体单词时,通过改变词首字母、词中字母或词尾字母向该词的上方扩展词汇。

dwindle 缩小

swindle 骗取

(5)下向运动

所谓下向运动,主要是指当我们遇到一个具体单词时,通过改变词首字母、词中字母或词尾字母向该词的下方扩展词汇。

culture 文化

vulture 秃鹰

(6)上下运动

所谓上下运动,主要是指当我们遇到一个具体单词时,通过改变词首字母、词中字母或词尾字母向该词的上方和下方扩展词汇。

garble 断章取义

marble 大理石

warble (鸟)啭鸣

(7)全方位运动

所谓全方位运动,主要是指当我们遇到一个具体单词时,通过添加或改变字母的方式向该词的左向、右向、上方和下方扩展词汇。

carpet ____ pet______ peter

地毯 宠物 逐渐消失

spot ______ pot______ potter

斑点 锅 陶工

imput______ put______ pute

输入 放 纯粹的

左向运动、右向运动、左右向运动强调词汇的横向运动,上向运动、下向运动、上下向运动强调词汇的纵向运动,全方位运动则是强调词汇的纵横运动。而最终实现的这种词汇的全方位运动的记忆模式或称之为词汇的放射式扩展,将为任何一个英语学习者创造出连他自己都不敢相信的奇迹。

第一讲 改变传统的记忆方法 (一)

我国学校的英语教学,始于1903年。近百年来,由于社会的进步和科学技术的发展,学校英语教学的教学手段、教学模式和学习方法,均有了长足的进步和明显提高,但就记忆单词来讲,仍然是按照从左至右的顺序采用数字母记忆单词的传统方法,基本上没有大的变化。这种陈旧的、一成不变的、传统的记忆方法,消耗了我们几代人的精力,严重地阻碍了我国的英语教学和英语人才的培养。

一、改变记忆单位

传统记忆法是以字母为单位,而逻辑记忆法则是以词为单位。

按照传统记忆法,我们要记住 dapple 这个词,就得经过如下五个步骤:

①数字母:d,a,p,p,l,e;

②借助于国际音标的标注正确读出dapple;

③记住词性,知道它是名词或动词;

④记住其汉语含义是“斑点”或“使有斑点”;

⑤记住其相应的英语解释。

经过这五道工序的加工,根据心理学家的测试,若想把dapple这个词记住终生不忘,至少要重复100 ̄150次,而且中间还得有停顿和间隔,否则一分钟重复100次,其效果实际上还是等于一次。而逻辑记忆法则是以词为单位:

apple 苹果

dapple 斑点

若想记住 dapple“斑点”这个词,只要在 apple “苹果”一词前面加一个字母“ d ”即可。这样,能记住一般词汇 apple 就能记住高难词汇 dapple,会读apple 就会读 dapple。如果说按照以字母为单位的传统记忆法,记住 dapple需要重复100次的话,那麽采用以词为单位的逻辑记忆法,只要重复3 ̄5 次就能记住终生不忘,而且还能起到记一个词就能等于记住两个词的作用。

所以,我们一定要用以词为单位的逻辑记忆法代替以字母为单位的传统记忆法,克服记忆上的饱和状态和英语学习者的徘徊不前的心理障碍,实现记忆上的突破和词汇量的倍增。

二、改变记忆顺序

传统记忆法的记忆顺序是从左到右,而逻辑记忆法则是采用灵活顺序。传统记忆法数字母记忆单词是按照从左到右这个固定不变的顺序进行记忆,而逻辑记忆法是以词为单位,可以采用正向、逆向或中间词的方式进行记忆。

offspring 后代

spring 春天

从 offspring 中找出 spring ,能记住 spring 就能记住 offspring,会读spring 就会读 offspring,这是正向增加词汇。

springe 圈套

spring 春天

从 springe 中找出 spring ,能记住 spring 就能记住 springe , 会读spring 就会读 springe,这是逆向增加词汇。

dwarf 侏儒

war 战争

从 dwarf 中找出 war ,能记住 war 就能记住 dwarf,会读 war 就会读dwarf,这是利用中间词增加词汇。

一般的英语学习者只能记住 spring ,但却记不住 offspring 和springe;只能记住 war ,但却记不住 dwarf 。可见,运用逻辑记忆法,以词为单位,改变记忆顺序,不但可以强化记忆,并且能够实现记忆上的突破和词汇量的倍增。

三、改变记忆角度

所谓改变记忆角度,就是从多角度、多方位、多侧面地去分析某一个具体词汇,找出最少字母组成的词,然后进行由多及少或由少及多地倍增词汇的训练直到形成思维定式熟记不忘。

scrap 这个词,按照传统记忆法就是一个词,记住就可以了。但是,根据逻辑记忆法改变记忆单位和改变记忆顺序的要求,我们必须这样记:

scrap 碎片

crap 掷骰子

rap 使着迷

crap 掷骰子

scrap 碎片

首先从某一具体单词中找出其最少字母组成的词,进行由多及少地记忆,然后再以最少字母单词为基础实施由少及多地记忆,如此循环往复直到记熟为止。

scrape 刮,擦

crape (吊唁时臂膀上戴的)黑纱

rape 抢劫

ape 类人猿

rape 抢劫

crape (吊唁时臂膀上戴的)黑纱

scrape 刮,擦

像 ape 和 rap 这样能够帮助英语学习者强化记忆和扩展词汇量的最少字母组成词,据我们统计,3个字母组成的词大约有 400 个,4个字母组成的词大约有200 个,5个字母组成的词大约有 100 个,6 ̄10个字母组成的词大约有 300个,累加起来大约有1000个小词。

只要我们把这 1000 个最少字母组成的小词记住,熟练运用英语词汇逻辑记忆法的基本原则和基本方法,就能强化记忆,使英语学习者的词汇量成倍,成几倍甚至成十几倍的增加。

Cobra Starship的成员介绍

  与The Academy Is... Fall Out Boy Panic! At The Disco Paramore!等同属于Decaydance Records的Cobra Starship是一支来自美国纽约的BreakBeat/Grindcore乐队,他们朗朗上口的旋律和强烈的节奏吸引了无数流行乐迷.

Cobra Starship是由主唱Gabe Saporta 吉他手Ryland Blackinton 贝斯手Alex Suarez 鼓手Nate Novarro 键盘手Victoria Asher 5人组成的。早在06年,乌拉圭人Gabe Saporta一个人组成了Cobra Starship乐队,为《空中蛇患》电影创作并演唱了同名主题曲Snakes On A Plane,并请了Gym Class Heros的Travis McCoy和The Academy Is的William Beckett来客串出演MV.接着,随着Ryland Blackinton,Nate Novarro等人的加入,乐队逐步成型. 终于,在2007年10月发行了专辑!Viva La Cobra!,随即轰动了美国,日本.

08年Cobra Starship受邀参加Vans Warped Tour,他们最新的MVthe City is at War也正在MTV台热播,相信,08年的流行音乐舞台上是不会少了这艘"眼镜蛇飞船" (Cobra Starship)的!

音乐专辑:

专辑名称:While The City Sleep.We Rule The Streets

中文名:当城市睡着,我们主宰大街

专辑类型:摇滚

发行年份:2006-10-10

专辑图片:

专辑曲目:

01 Being From Jersey Means Never Having To Say You're Sorry

02 Send My Love To The Dancefloor.I'll See You In Hell

03 The Church Of Hot Addiction

04 The Kids Are All Fucked Up

05 It's Warmer In The Bassement

06 Keep It Simple

07 It's Amateur Night At The Apollo Creed!

08 Bring It

09 The Ballad Of Big Poppa And Diamond Girl

10 Pop-Punk Is Sooooo

11 You Can't Be Missed If You Never Go Away

专辑名称:!Viva La Corbra!

专辑图片:

发行时间:2007年

专辑曲目:

01 City Is At War

02 Guilty Pleasure

03 One Day,Robots Will Cry

04 Kiss My Sass

05 Damn You Look Good And I'm Drunk

06 World Has Its Shine

07 Smile For The Paparazzi

08 Angie

09 Prostitution Is The World's Oldest Profession

10 My Moves Are White

11 Pleasure Ryland

专辑名称:Hot Mess

专辑图片:

音乐风格:摇滚

发行日期:2009-08-11

地区:美国

专辑曲目:

01 nice guys finish last

02 pete wentz is the only reason we're famous

03 good girls go bad

04 fold your hands child

05 you're not in on the jake

06 hot mess

07 living in the sky with diamonds

08 wet hot american summer

09 the scene is dead=long live the scene

10 move like you gonna die

11 the world will never do

12 i may be rude but i'm the truth

13 cobras never say die

值得一提的是good girls go bad 这首歌是Cobra starship 与热门美剧 《绯闻女孩》主演leighton meester 合作的曲目 非常好听

golang命令行库Cobra的使用

写了2次才写完,内容很长,翻译了很久,内容来源于Cobra github介绍。翻译完也更全面的了解了Cobra,功能相当强大完善,各种使用的场景都考虑到了。另外也扩展了一些其它知识,比如 命令行玩法 , Levenshtein distance 等等。以下是正文:

Cobra提供简单的接口来创建强大的现代化CLI接口,比如git与go工具。Cobra同时也是一个程序, 用于创建CLI程序

Cobra是建立在结构的命令、参数和标志之上。

命令代表操作,参数和标志是这些行动的修饰符。

最好的应用程序就像读取句子。用户会知道如何使用本机应用程序,因为他们将理解如何使用它。

比如下面的例子, server 是命令, port 是标志:

在下面的命令,我们告诉Git克隆url地址bare

使用Cobra很简单。首先,使用 go get 安装最新版本

然后在你项目里引用Cobra

通常基于Cobra的应用程序将遵循下面的组织结构,当然你也可以遵循自己的接口:

在Cobra应用程序中,通常main.go文件非常空洞。它主要只干一件事:初始化Cobra。

Cobra提供自己的程序来创建你的程序并且添加你想要的命令。这是最简单的方式把Cobra添加到你的程序里。

这里 你能找到相关信息

使用Cobra,需要创建一个空的main.go文件和一个rootCmd文件。你可以选择在合适的地方添加额外的命令。

Cobra不需要特殊的构造函数。简单的就可以创建你的命令。

理想情况下你把这个放在在 app/cmd/root.go

你会另外定义标志和处理配置init()函数。

比如 cmd/root.go

你需要在main函数里执行root命令。

通常main.go文件非常空洞。它主要只干一件事:初始化Cobra。

其它的命令通常定义在cmd/目录下的自己文件内

如果你想创建一个version命令,你可以创建cmd/version.go文件,并在文件里这么写:

标志提供修饰符控制动作命令如何操作

当标志定义好了,我们需要定义一个变量来关联标志

'持久'表示每个在那个命令下的命令都将能分配到这个标志。对于全局标志,'持久'的标志绑定在root上。

Cobra默认只在目标命令上解析标志,父命令忽略任何局部标志。通过打开 Command.TraverseChildren Cobra将会在执行任意目标命令前解析标志

你同样可以通过 viper 绑定标志:

在这个例子中,永久的标记 author 被 viper 绑定, 注意 , 当用户没有给 --author 提供值, author 不会被赋值。

标记默认是可选的,如果你希望当一个标记没有设置时,命令行报错,你可以标记它为必须的

验证位置参数可以通过 Command 的 Args 字段。

内置下列验证方法

一个设置自定义验证的例子

在下面的例子,我们定义了3个命令。2个在顶级,一个(cmdTimes)是其中一个顶级命令的子命令。在这个例子里,由于没有给 rootCmd 提供 Run ,单独的root是不能运行的,必须要有子命令。

我们仅为一个命令定义了标记。

更多关于flags的文档可以在 找到

更完整大型程序的例子, 可以查看 Hugo .

当你的程序有子命令时,Cobra 会自动给你程序添加help命令。当你运行‘app help’,会调用help命令。另外,help同样支持其它输入命令。例如,你有一个没有任何其它配置的命令叫‘create’,当你调用‘app help create’ Corbra 将会起作用。

下面的输入是 Cobra 自动生成的。除了命令和标志的定义,其它不再需要。

help 就跟其它命令一样,并没有特殊的逻辑或行为。事实上,你也可以提供你自己help如果你想的话。

你能为默认的命令,提供你自己的help命令或模板。使用下面的方法:

后2个也将适用于任何子命令

当用户提供无效的标记或命令,Cobra 将会返回 用法 。

你可能从上面的帮助意识到,默认的帮助将被嵌入到用法里然后作为输出。

你能提供你自己的用法函数或模板给 Cobra 使用。

比如帮助,方法和模板都可以重写。

如果Version字段设置到了根命令,Cobra 会提供了一个顶层 ‘--version’标记。运行带上‘--version’标记的程序,将会按照模板版本信息。模板可以通过 cmd.SetVersionTemplate(s string) 方法修改

在命令运行前或运行后,再运行方法非常容易。 PersistentPreRun 和 PreRun 方法将会在 Run 之前执行。 PersistentPostRun 和 PostRun 方法将会在 Run 之后执行。 Persistent*Run 方法会被子命令继承,如果它们自己没有定义的话。这些方法将按照下面的属性执行:

下面的例子,2个命令都使用了上面的特性。当子命令执行的时候,它将执行根命令的 PersistentPreRun ,但不会执行根命令的 PersistentPostRun :

输出:

Cobra 会自动输出建议,当遇到“unknown command”错误时。这使得当输入错误时, Cobra 的行为类似 git 命令。例如:

建议会基于注册的子命令自动生成。使用了 Levenshtein distance 的实现。每一个注册的命令会匹配2个距离(忽略大小写)来提供建议。

如果你希望在你的命令里,禁用建议或虚弱字符串的距离,使用:

你可以通过 SuggestFor 来给命令提供明确的名词建议。这个特性允许当字符串不相近,但是意思与你的命令相近,别切你也不想给该命令设置别名。比如:

Cobra 可以基于子命令,标记,等生成文档。以以下格式:

Cobra 可以生成一个bash-completion文件。如果你给命令添加更多信息,这些completions可以非常强大和灵活。更多介绍在 Bash Completions 。


分享标题:go语言cobra Go语言面试题
URL地址:http://myzitong.com/article/hggidj.html