想到一个比较沙雕的语言设计问题,不知道是否有标准答案?

1 天前
 BNineCoding

不同语言中,参数名和类型的位置是不一样的。

比如 java 中是:String name ,先写声明类型,再写变量名。

但在 JavaScript 中是:name:string ,先写变量名,再写类型。

在我看来这两个声明方式完全没任何区别,为什么语言设计者要搞出两种不同的使用方式?

这不是徒增 diff 吗?

827 次点击
所在节点    问与答
17 条回复
ferock
1 天前
所以世界才这么五彩斑斓
ferock
1 天前
为什么要都一样呢?那何必再多个语言呢
cmdOptionKana
1 天前
因为 “照顾老习惯” 并非最高优先级。百花齐放,自由地创造反而更重要。

另外要注意,它们不一样,不是故意不一样,而是各自选择了自己认为最合适的方式,有时恰好一致,有时恰好不同,有时恰好大同小异。
NotLongNil
1 天前
name:string 是 TypeScript 的写法吧,我个人猜测采用这种写法是为减轻编译器的实现
crysislinux
1 天前
这个问题是有明确答案的,去问 gpt 吧。
panlatent
1 天前
归根到底还是设计哲学的问题
Leviathann
1 天前
因为 C 是 BS
yoyoyoyolol
1 天前
故意的,都一样了还有啥区分.就跟 switch 手柄和 xbox 手柄那四个控制键反着来差不多
CEBBCAT
1 天前
这个网站目前不接受 AI 生成内容 建议楼主点击“下沉主题”按钮
DOLLOR
1 天前
TS 的变量类型是可以省略的,编译器、LSP 可以自动推导。
既然是可省略的东西,应该放在后面,因为相对不那么重要。

另外请不要直接贴 AI 的长篇大论。
Perry
1 天前
校服穿惯的学生想法是这样子的
cmdOptionKana
22 小时 44 分钟前
> 提炼了一个重点:JavaScript 这种语言其实是动态类型的...所以类型被弱化放后面了

虽然但是,静态类型的 Go 也是类型放后面 func f(x string) {}
glcolof
21 小时 47 分钟前
最早的时候,底层语言关注的是内存空间,内存空间对应的是类型,变量名只是帮助记忆的符号,所以先确定类型再赋予名字。
高级语言关注的是逻辑,变量是逻辑的一部分,所以先确定变量,后面有需要的时候再赋予类型。
时间长了之后,大家各自养成了习惯,形成了固定的审美倾向,所以也就不管这些了,想类型在前就类型在前,想变量名在前就变量名在前,反正结果都一样。
zhhbstudio
20 小时 49 分钟前
众所周之,Javascript 变量没有类型,直接 name = anything 。
name:string 已经是 Flow 或 Typescript 的了,都是得做一次转换才是 Javascript ,转完了也没类型定义了。
zhhbstudio
20 小时 48 分钟前
@zhhbstudio #14 众所周知....
cenbiq
20 小时 22 分钟前
@glcolof 跟我想的一样,变量在前的语言主要着重变量本身,类型放前面的语言主要着重类型。并且据我观察确实越新的语言越是前者。
wanguorui123
20 小时 18 分钟前
成熟的人要接受世界的参差不齐

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1097725

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX