百科问答小站 logo
百科问答小站 font logo



编程语言中类型前置和类型后置的优缺点各是什么? 第1页

  

user avatar   Ivony 网友的相关建议: 
      

类型后置和无类型的程序设计语言其实更多。


类型前置一般都是C语系的,例如C/C++/Java/C#啥的。



类型前置的逻辑就是,类型是必需的。

所以那我们就先写类型好了,每个语句开头的第一个Token不是关键字就是类型。(对于某些类型前置的语言,赋值也是需要LET关键字的。就算考虑赋值,那么第一个Token也是可以不依赖后面的东西判断出来的)。

所以某答案显然是胡扯,也不知道为啥赞最多。


然后这就成了传统延续了下来。


类型后置多见于非强类型语言和无类型语言,后者就不说了,无所谓前置后置。类型是一个可选的注解(optional annotation)。既然是可选的,可选的东西当然是后置的。


所以说类型后置更便于省略类型是有一定的道理的。像C#要玩省略类型就只好加一个var关键字。

因为没有var关键字,那就很难确定这是一个定义变量的语句,还是赋值的语句,非常麻烦。


user avatar   huxpro 网友的相关建议: 
      

谢邀,手机答

想毕作者想说的是类型标注(type annotation) 在前还是在后。

Java 需要写类型的地方大部分都是定义(def)不是使用(use),不知道作者说的自动补全变量名是哪类场景?

类型标注放后面风格的好处简单说就是 可以先不写……所以无论对于 TS 这样的渐进类型场景或者有一定类型推导能力的现代语言都比较适合。


user avatar   chunquedong 网友的相关建议: 
      

反对高票答案!

  1. 后置类型之所以遇到第一个token就知道,那是因为fun/val关键字的原因,与前置后置没有关系。
  2. 有些人喜欢拿C语言函数指针说事,说明后置类型好。事实上int (*func)(int);是变量在中间,类型在两边,既不是前置也不是后置。本来讨论A好还是B好,结果搬出一个C来和B对比一通,得出B比A好的结论,这种辩论技巧值得每个人学习。
  3. 类型前置也可以做类型推断,来省略类型。在现代解析器中,超前查看一个根本不是事。还是应该着眼于人类可读性来说。

我的观点是前置和后置没有特别明显的优缺点。只能想到这几个不痛不痒的原因了:

1.类型后置看起来更整齐。有些C代码喜欢在类型后换行,大抵也是这个原因。

       void foo(int a);     

2.名称比类型重要,所以先写名称更好。

3.初始化语法,很容易让人感觉是在给Int赋值:

       i : Int = 0;     

4.不知道为什么类型后置的语言很多喜欢中间加冒号,冒号好像是多余的。


我的Fanx语言有两种文件格式,及支持类型写在前面,也支持类型写在后面。满足两种习惯。




  

相关话题

  如何将 C 语言发挥到极致? 
  面向对象程序设计比传统的面向过程程序设计更有什么好处? 
  码农如何以写代码的方式祝愿亲爱的朋友们新年快乐? 
  什么是 Type Driven Development ? 
  为什么有些编程语言的数组要从零开始算? 
  假如我知道了抽卡游戏的随机数生成算法源码,是否能成为欧皇? 
  如何评价阿里味编程语言 pua lang? 
  蒋凡「疑似出轨张大奕」被除名合伙人,阿里程序员「通过内部代码抢月饼」被开除,如何看待二者的惩罚力度? 
  为什么程序员谈工资习惯用k为单位? 
  在知乎,Java 相对于 C# 来说是不是被过分贬低了? 

前一个讨论
315 晚会曝光的「浏览网页就能泄露手机号」的原理是什么?
下一个讨论
乌克兰可不可以冒充俄军进攻波兰、立陶宛等北约国家,强行把北约拉进战争破局?





© 2024-09-16 - tinynew.org. All Rights Reserved.
© 2024-09-16 - tinynew.org. 保留所有权利