在函数定义中分配给 arg?
assigning to arg inside function definition?
试图阅读一些旧的 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 在这个函数中实际上做了什么?为什么我的演示没有帮助?
哎呀,我刚知道。
这不是函数内部的赋值,它是相等性测试!
如果相等,则returns -1 (为什么...),否则为0.
例如:
10 print 9=9
20 print 9=8
RUN
-1
0
Ok
伙计,自从我使用一种使用 =
表示平等的语言以来,已经 很长时间了 ...
试图阅读一些旧的 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 在这个函数中实际上做了什么?为什么我的演示没有帮助?
哎呀,我刚知道。
这不是函数内部的赋值,它是相等性测试!
如果相等,则returns -1 (为什么...),否则为0.
例如:
10 print 9=9
20 print 9=8
RUN
-1
0
Ok
伙计,自从我使用一种使用 =
表示平等的语言以来,已经 很长时间了 ...