不同语言中,参数名和类型的位置是不一样的。
比如 java 中是:String name ,先写声明类型,再写变量名。
但在 JavaScript 中是:name:string ,先写变量名,再写类型。
在我看来这两个声明方式完全没任何区别,为什么语言设计者要搞出两种不同的使用方式?
这不是徒增 diff 吗?
1
ferock 6 天前 via Android
所以世界才这么五彩斑斓
|
2
ferock 6 天前 via Android
为什么要都一样呢?那何必再多个语言呢
|
3
cmdOptionKana 6 天前
因为 “照顾老习惯” 并非最高优先级。百花齐放,自由地创造反而更重要。
另外要注意,它们不一样,不是故意不一样,而是各自选择了自己认为最合适的方式,有时恰好一致,有时恰好不同,有时恰好大同小异。 |
4
NotLongNil 6 天前
name:string 是 TypeScript 的写法吧,我个人猜测采用这种写法是为减轻编译器的实现
|
5
crysislinux 6 天前 via Android
这个问题是有明确答案的,去问 gpt 吧。
|
6
panlatent 6 天前 via Android
归根到底还是设计哲学的问题
|
7
Leviathann 6 天前
因为 C 是 BS
|
8
yoyoyoyolol 6 天前 via iPhone
故意的,都一样了还有啥区分.就跟 switch 手柄和 xbox 手柄那四个控制键反着来差不多
|
9
CEBBCAT 6 天前 via iPhone
这个网站目前不接受 AI 生成内容 建议楼主点击“下沉主题”按钮
|
10
DOLLOR 6 天前
TS 的变量类型是可以省略的,编译器、LSP 可以自动推导。
既然是可省略的东西,应该放在后面,因为相对不那么重要。 另外请不要直接贴 AI 的长篇大论。 |
11
Perry 6 天前 via iPhone
校服穿惯的学生想法是这样子的
|
12
cmdOptionKana 6 天前
> 提炼了一个重点:JavaScript 这种语言其实是动态类型的...所以类型被弱化放后面了
虽然但是,静态类型的 Go 也是类型放后面 func f(x string) {} |
13
glcolof 6 天前 1
最早的时候,底层语言关注的是内存空间,内存空间对应的是类型,变量名只是帮助记忆的符号,所以先确定类型再赋予名字。
高级语言关注的是逻辑,变量是逻辑的一部分,所以先确定变量,后面有需要的时候再赋予类型。 时间长了之后,大家各自养成了习惯,形成了固定的审美倾向,所以也就不管这些了,想类型在前就类型在前,想变量名在前就变量名在前,反正结果都一样。 |
14
zhhbstudio 6 天前
众所周之,Javascript 变量没有类型,直接 name = anything 。
name:string 已经是 Flow 或 Typescript 的了,都是得做一次转换才是 Javascript ,转完了也没类型定义了。 |
15
zhhbstudio 6 天前
@zhhbstudio #14 众所周知....
|
17
wanguorui123 6 天前
成熟的人要接受世界的参差不齐
|