TSL语言基础 > TSL语言基础 > 基础知识 > 弱类型语言与变量类型运行时相关

Explicit变量声明的编译选项    

  •   无需提前声明就可以直接使用的特性使得TSL语言非常容易使用,但是这种便捷的特性同时也会带来负面的影响。当开发大型程序的时候,用户比较容易在写程序的时候遇到写错变量名的情况,由于在程序的语法而言并不是一种错误,只是运行的结果和预期不一致,这种错误很难查找,TSL语言提供了另外一个选择给用户,即允许用户选择必需先申明后使用的模式。
      用户在程序代码前加上编译选项{$Explicit+}就可以让出现在这个编译选项之后的所有代码(无论是否在一个函数内,只要是同一个源代码文件内)都会遵循先声明后使用的模式,要关闭这个选项则使用{$Explicit-}。
      TSL采用Var作为前缀来声明变量,具体使用方法为:
      Var varName[:Type][:=InitExpression];类型可以省略,即便声明,目前TSL语言也不采用该类型信息,当需要赋初值,则使用在变量后加赋值语句。
      如果有多个变量同时声明,则采用:Var varName1,varName2[:Type];
      例如:
      D:=1;
      {$Explicit+}
      Var A,B; //同时定义两个变量A和B
      Var E:=D+10; //给变量E赋初始值
      A:=1;
      B:=2;
      C:=3; //该变量未预先声明
      系统会提示C:=3这一行“变量未申明”。我们来理解下上面的代码,D:=1;不会出错,因为默认是无需变量先声明的,但是当使用了{$Explicit+}之后,所有的变量必需经过声明,所以C:=3就会出错了。
      是否需要预先声明变量完全是个双刃剑,可以获得方便的同时也会带来副作用,读者可以自己选择自己的编程风格。事实上,即便写大程序没有选择变量声明的模式,当出现变量名错误问题,定位到问题也比较容易,因为TSL语言提供了很便捷的辅助调试功能,例如有输出当前运行环境中所有变量的功能,而在调试器中也可以看到所有存在的变量名,一旦有写错了变量名的情况,开发人员可以很容易发现。