Forth 值与变量有何不同?

Oll*_*edt 3 forth

阅读 Gforth 手册,可以使用单词 来更改值TO,那么它与变量有何不同?

https://gforth.org/manual/Values.html

Vel*_*tas 6

VALUE接受一个初始值,创建的单词像 一样直接将值放入堆栈中CONSTANT。仍然可以使用 更改该值TO。许多使用 的 Forth 中的单词定义VALUE会更小,因为它们只需要引用创建的单词而不是!

5 件超值毛圈布
特里斯。5 好的

VARIABLE只是为未初始化的值保留空间,并且创建的字将变量的地址放在堆栈上。

可变毛圈布
5 毛圈!
特里斯@。5 好的

VARIABLE当您想要获取变量的地址时很有用,VALUE当您不需要时也很有用。

如果您想初始化变量并能够获取地址,实际上使用CREATEand更容易,,如下所示:

创建毛圈 5 ,
特里斯@。5 好的