因此,我想在Commodore 64 BASIC中编写更大的函数。到目前为止,从我从其他来源(例如各种C64 Wiki,以及C64本身的用户手册)中看到的信息来看,函数定义只能是一行。
也就是说,我似乎在BASIC中找不到与方括号/其他语言用来描述代码块的类似构造。

有谁知道我将如何用BASIC编写多行代码块?

单行功能示例:

10 def fn X(n) = n + 1
20 print fn X(5) rem Correctly called function. This will output 6

但是我不能做这样的事情:
10 def fn X(n) =
20 n = n + 1
30 print n
40 rem I'd like the definition of function X to end at line 30 above
50 fn X(5) rem Produces syntax error on line 40

感谢您的时间!

最佳答案

遗憾的是C64 BASIC不支持更复杂的功能。

但是,它确实支持更复杂的子例程,这就是您在这种情况下想要的。

10 rem you can set up n in advance here
20 n = 23
30 gosub 50
40 rem n is now 24
50 rem start of subroutine; this line is not needed, it's just here for clarity
60 n=n+1
70 print n
80 return
90 rem now you can call the subroutine on line 50 and it'll return at line 80

不幸的是,在C64 BASIC中将参数传递到子例程中以及从子例程返回值不是正规化的构造,因此您只需要使用上面显示的普通变量即可。

关于function - Commodore 64 BASIC中的多行功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38415954/

10-10 18:30