为什么find命令必须与'&'一起运行?

问题描述 投票:0回答:2

我是一名中国学生。首先,我的英语很差.LOL ~~~我对Visual Fox Pro的一些语法规则感到非常困惑。

在我的表中有一个名为id的字符字段,运行下面的命令来找到它的id等于'A0001'的记录:

index on id tag _id
id='A0001'
find &id

&id返回变量名A0001,我只想知道解释器如何将变量名与表中的字符字段进行比较?

对于上面的代码,它也可以重写如下:

find A0001
visual-foxpro
2个回答
1
投票

如果您有一个与当前所选表中的字段同名的变量,则在引用该变量时将使用该字段的内容。您可以通过在'm'前面加上前缀来避免这种情况。 (意思是使用内存变量而不是字段)。这样做:

id = 'A001' && assignment always goes to the variable

SEEK m.id

和技术有用的一种方法是,如果你想引用几个值中的一个:

id1 = 'A001'

id2 = 'B002'

to_find = 'm.id2'

SEEK &to_find && Acts like: SEEK m.id2


-1
投票

这完全是关于编译器和解释器的工作原理。他们分享了相同的3个步骤:

  • 第1步(称为词法分析):编译器将提交的源代码分解为名为lexemes的有意义元素,并从词位中生成一系列标记。
  • 第2步(称为语法分析):编译器使用词法分析期间生成的令牌序列生成称为抽象语法树的树状数据结构,AST
  • 第3步(称为语义分析):编译器使用语法分析期间生成的AST来检查程序是否与源编程语言的所有规则一致

所以,“&”是一个符号,所以他们可以识别它是VARIABLE,而不是找到字符串名称“id”

© www.soinside.com 2019 - 2024. All rights reserved.