可能是重复问题:
为什么我们一直都要使用行号?
我很好奇早期版本的BASIC编程语言为什么像这样使用行号:
42 PRINT "Hello world!"
那时候的文本编辑器没有行号吗?
编辑:是的,我知道它们用于GOTO,但为什么呢?我的意思是,拥有标签会计算开销太大吗?
可能是重复问题:
为什么我们一直都要使用行号?
我很好奇早期版本的BASIC编程语言为什么像这样使用行号:
42 PRINT "Hello world!"
如果我没记错的话,行号主要用作GOTO和GOSUB语句的标签,因为在一些(大多数?)BASIC版本中没有办法对代码段进行标记。
它们也被编辑器使用 - 也就是你所说的:
edit 100
编辑第100行。
正如其他人指出的那样,这些行号曾作为子程序的一部分而使用。
当然,现在不再这样做有原因。想象一下,如果您在第10行上说GOTO 20,然后稍后意识到您需要在第10行之后写10行代码。突然之间,您会撞到20,所以您需要将子程序移到更远的地方(更高的数字)并更改GOTO值,或者您需要编写另一个跳转到代码中更远位置的子程序。
换句话说,它变成了真正意义上的意大利面条式代码的噩梦,不好维护。
100 PRINT "Broken Code"
200 PRINT "Foobar"
...
101 patch the broken code
102 patch more broken code
因为行号不必在文件内进行排序。
在许多情况下(或者在我的旧Commodore 64上),它是通过命令行输入的,因此可能并不总是有文本编辑器,或者如果有的话,它也非常基础。
此外,您需要执行GOTO等操作,以及在其他行之间插入行。
例如:
10 PRINT "HELLO"
20 GOTO 10
15 PRINT " WORLD"
它将在逻辑10 15 20中去哪里