Born to be together,这句也是Apple以前iTune和iPod的广告词。不过这里是用来比喻两个语言特性:类型推断和命名参数。
自ML诞生的类型推断技术似乎随着C#3的宣传日渐进入主流视野,一些新语言如D,Scala也实现了所谓“局部类型推断”(只简化声明,但不推断函数接口)。类型推断简化了大量不必要的类型声明,使代码获得动态脚本语言一样的感观,同时有获得编译期的类型检查和运行时的性能。不过在可读性上或多或少有点影响,有几种解决办法:
1)添加注释,以后注释和代码的同步维护负担重,不理想。
2)添加类型声明,像Haskell那样,繁琐。当然显式类型声明有时是用来约束更紧的类型。
3)更具说明性的参数命名+命名参数,这也是为什么动态语言没有类型声明也不会感觉不可读的问题,甚至比静态语言在调用函数的时候更可读。某种程度上VB发明的匈牙利命名法也不失为一种增进动态语言可读性的办法。
命名参数有如下好处:
-不用再硬记参数顺序了,没有IDE提示也能过日子
-相当于调用时的参数描述文档
-一般支持命名参数的语言都会支持可选参数(这两个也是天生一对),可选参数的意义不仅是简化函数调用,而且让参数API可扩展又不影响已有代码。可选参数还消灭了方法重载(overload)的必要。
埃,这么多好处,没有命名参数的语言真是没法活了。
说道命名参数的实现,一般分两类:一种是语法级实现如Python,Ocaml;一种是用hash/record或某种复合数据结构模拟,如Ruby和Haskell。
分享到:
相关推荐
区块链VS供应链,天生一对(2021)(33页).pdf
天生一对.doc
创意趣味的情人节模板,天生一对——邂逅情人节ppt模板。
天生一对经典台词翻译.doc
天生一对-邂逅情人节PPT模板.pptx
区块链VS供应链,天生一对.pdf
新能源汽车与车联网:天生一对.pdf
区块链行业:区块链VS供应链,天生一对
大班优质语言教案《天生一对》润新教育.txt
中班上学期音乐教案《天生一对》含反思.doc
Word模板-信纸新天生一对(蓝).wpt
《天生一对》绘本故事PPT 鳄鱼和长颈鹿是一对爱人,他们真心相爱。虽然长颈鹿那么高大,鳄鱼这么矮小,但是他们住在非常特别的房子里,不用担心高矮的问题。 这一天,他们挂在树上,感觉真好,但是时间久了,他们又...
关于大数据的基本需求以及将来市场的发展需要,这个机遇
Variabless允许您以单一的真实来源来管理应用程序范围CSS样式和变量。 Variabless会将JS定义文件转换为CSS变量或类,从而允许您在JS和CSS文件中使用这些值。为什么使用变量? 自从引入CSS变量以来,在您的应用程序中...
Adboe的Red5流媒体服务器免费并且是开源的,与Flash搭配的时候可谓是天生一对,但使用Java和Android作为客户端调用却可谓一波三折。 国外一个收费的RTMPClient,官网售价是395$。http://smaxe.com,很多人肯定找过...
2020《区块链VS供应链,天生一对》 2020工业区块链应用白皮书 2020广播电视和网络视听区块链技术应用白皮书 2020杭州市区块链产业白皮书 2020江苏省区块链产业发展报告 2020能源石化交易行业区块链应用白皮书 2020年...
在搭建高吞吐量web应用这个议题上,NginX和Node.js可谓是天生一对。他们都是基于事件驱动模型而设计,可以轻易突破 Apache等传统web服务器的C10K瓶颈。预设的配置已经可以获得很高的并发,不过,要是大家想在廉价...
在搭建高吞吐量web应用这个议题上,NginX和Node.js可谓是天生一对。他们都是基于事件驱动模型而设计,可以轻易突破Apache等传统web服务器的C10K瓶颈。预设的配置已经可以获得很高的并发,不过,要是大家想在廉价硬件...
笔者凭借自己多年一线的工作经验,在多次实践和应用中从4C的思考角度去剖析,发现原来4C是天生的一对,相辅相成,完全可以开启一个新的思路。 所谓4C法则就是,企业在适合的场景(Context)下,针对特定的社群...
然而网络的建设就是为了互通的,没有数据的共享,网络的作用也缩水了不少,因此网络隔离与数据交换是天生的一对矛盾,如何解决好网络的安全,又方便地实现数据的交换是很多网络安全技术人员在一直探索的。