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




  

相关话题

  闭源软件有类似于开源软件那种许可证吗? 
  面向对象中接口应该更抽象还是更具象? 
  web前端是不是没有前景了? 
  为什么不能能向方法同时传入dynamic 类型,和lambda类型的参数? 
  编程语言能做到微言大义吗? 
  如何看待一些大学生说 3 天学会了 Java? 
  如果想让中国程序员水平高于美国程序员水平,中国互联网公司应做出哪些变化? 
  当年谷歌为什么不收购sun?而让Oracle买了去呢? 
  30 岁文盲能转行程序员吗? 
  Java为什么选择interface来作为"接口"这个功能的关键字? 

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





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利