首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >第四表达式运算

第四表达式运算
EN

Stack Overflow用户
提问于 2018-03-01 07:48:57
回答 2查看 178关注 0票数 1

在Java中,可以执行以下操作:

代码语言:javascript
运行
复制
int var = 5;
var += 2;
var -= 2;
var *= 2;
var /= 2;

在福斯可以这样做吗?

代码语言:javascript
运行
复制
variable var
3 var !
1 var +! //Increment

有可能在福斯做其他的手术吗?如果没有,有什么提示吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-01 08:19:59

除了使用-2 var +!递减之外,这些其他操作都不是内置的。

你可以这样做:

代码语言:javascript
运行
复制
: -! ( x addr -- )   swap negate swap +! ;
: *! ( x addr -- )   tuck @ * swap ! ;
: /! ( n addr -- )   tuck @ / swap ! ;
票数 3
EN

Stack Overflow用户

发布于 2019-01-18 16:20:00

这在福斯是有一个根本的原因不能做到的。让我们

int,var1;

以及Jave代码:

‘var1 =var1;

除了Forth想要用空格分隔的符号之外,Forth想要一个单词总是做同样的事情,独立于上下文。在Java代码中,var是左边的,这意味着它必须表示一个地址,其中存储了一些东西。在右边,var1也表示一个地址。但是Java神奇地获取了地址的内容!第四,我们不做魔法交易。我们不能让var现在做这个,然后再做那个。你给出的例子是可行的,只要你远离魔法部分,就像其他答案所解释的那样。

当然,福斯也会施魔法。您可以创建一个=-word,检查下面的单词var是否为int类型,然后获取它。但这不是Forth,那是Java的第四个实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49044918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档