百科问答小站 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语言有两种文件格式,及支持类型写在前面,也支持类型写在后面。满足两种习惯。




  

相关话题

  如何看待这份2018互联网校招高薪清单? 
  为什么NodeJS领域那么多框架,而Java则可以SpringBoot一家独大? 
  为什么 .NET 平台在技术上远强过 Java,而多数大公司却仍采用后者? 
  未接触过编程的妹子希望通过做小项目来学习编程,有哪些类型的项目比较适合? 
  为什么大家都很否定中文编程? 
  程序员的压力有哪些? 
  做游戏不仅要编程能力还要计算机其它方面的知识吗? 
  多用组合少用继承中,接口继承算不算一种组合? 
  为什么 .NET 平台在技术上远强过 Java,而多数大公司却仍采用后者? 
  在C#下有什么好办法可以替代if-else和switch-case? 

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





© 2024-12-18 - tinynew.org. All Rights Reserved.
© 2024-12-18 - tinynew.org. 保留所有权利