奇思妙想 · 2024年 3月 14日 0

定义变量类型总是在变量前面吗?

59 次浏览

非也。尽管C系语言遵循的基本原则是定义变量,类型在前面,名称在后面,但这并不是绝对。Go和Rust是这方面的先锋。

  • C/ObjC/C++/C#/Java 类型在标识符前。
  • Go/Rust/Swift/仓颉 标识符在类型前。
  • Python/JS/Shell 不需要指定类型。
  • VB稍显特殊,它的声明形式是:Dim xxx As yyy_type, 勉强算类型在变量后面。VB 9.0开始支持隐式本地变量,可省略类型交给编译器推导。
    Dim myNumber = 10

类型在前或在后有什么不同?

  • 从直面效果,仅仅是位置颠倒了,例如Go语言var a, b int = 1, 2, Rust语言let a: u32 = 100, 并没有影响编译器理解。
  • 从另外一个角度,对于一条声明/初始化语句的几个部分,变量、类型和声明/初始化,变量是不可缺少的,类型或者初始化是可省略的。以Go为例,可以省略类型var a = 100,或者省略初始化var b int.