我注意到无处可寻,可以给我一个明确的答案。我首先想知道这一点,当我注意到你在声明它们时从未必须在QBasic中声明变量的类型,尽管你可以在变量的名称中添加一个后缀以确保它是特定类型。
另外,由于BASIC的某些方言被解释而其他方言被编译,这是否会影响打字系统?
答案 0 :(得分:6)
BASIC有很多种口味,有些只是历史性的,有些仍在使用中,所以不可能给出一个真正的答案。
一些旧的BASIC(编号为BASIC的行)有两种数据类型:String或Integer。 Apple-II计算机附带的原始BASIC是“Integer BASIC”。后来BASICs推出了浮点数,它通常是单精度FP。 TI-99 / 4a附带的BASIC就是早期80年代浮点数BASIC的一个例子。 “返回时”,您将使用引号创建一个字符串文字,并在标识符名称后面生成一个带有$
符号的字符串变量。没有$
sigil的变量通常默认为基本支持的给定风格(整数或浮点)的数字变量类型。例如,GWBasic将默认为浮点,除非您指定%
sigil,这意味着“整数”。 TI Extended Basic没有整数类型,但浮点数字类型有15位有效数字,如果我记得(浮点数学错误不能承受)。
这些早期的基础知识基本上是静态类型的,尽管这种区别远不如在更强大的语言中有用。数据类型的选择很少:字符串,数字(有时是Int,有时是FP),有时可以指定数字是Int还是FP。在幕后,有些人甚至可以根据需要在整数和浮点之间自由转换。通常这种幕后转换没有很好的记录。
但那是80年代的状况,当时每个家用电脑的人都是最吵闹的,而且标准是松散的。每个硬件制造商似乎都对BASIC应该如何工作有自己的看法。
更现代的BASIC更强大,允许更严格地控制变量类型(如果需要)。
答案 1 :(得分:2)
早期的BASIC方言总是静态输入。数字变量,字符串变量和数组都需要不同的语法。名称长度通常仅限于一个符号。对于数字,最常用的语法只有V
,对于字符串,数组V$
和数组分别用DIM
声明。
由于我没有在BASIC编程15年,我不能肯定现代方言中发生了什么。
答案 2 :(得分:1)
MultiValue数据库系统中使用的增强版BASIC使用动态类型。这意味着编译器根据语句的逻辑和上下文决定如何处理变量。
双引号中的任何内容都是字符串,任何不在双引号中的数值都是数字。为了以双精度或浮点数的形式写出数字数据,可以使用各种格式表达式来实现这一点,并将其应用于变量。
最终,所有内容都作为ASCII字符串保存在数据库级别。因此,开发人员在业务逻辑级别强制执行类型,而不是强制执行它的数据库。