在函数定义中分配arg?

时间:2016-04-01 17:45:14

标签: basic gw-basic

尝试阅读一些旧的BASIC代码来做一个端口,并遇到这个令人费解的概念:

1150 DEF FNB(Q)=Q+8*((Q=9)-(Q=0))

这里发生了什么?你如何分配这样的参数?为什么这不等同于Q+8*(9-0)

我写了一个小小的演示进行调查,但它并没有产生我预期的任何东西:

10 DEF FNB(Q)=Q+8*((Q=9)-(Q=0))
20 PRINT FNB(1)
30 PRINT FNB(2)
20 PRINT FNB(3)
30 PRINT FNB(10)
RUN
 1
 2
 3
 10
Ok

我必须做错事,因为FNB不能成为身份证明。

有人可以解释一下BASIC在这个功能中实际做了些什么吗?为什么我的演示没有帮助?

1 个答案:

答案 0 :(得分:0)

唉,我刚拿到它。

在函数内部没有赋值,它是一个相等的测试!

如果它们相等,则返回-1 (为什么......),否则为0.

例如:

10 print 9=9
20 print 9=8
RUN
-1
 0
Ok

伙计,因为我使用了一种使用=来平等的语言,所以很长时间......