第四:使用“I”作为其与“CHAR”的值

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

我尝试将特殊循环变量

I
[CHAR]
一起使用。 用这个最小的例子:

: ex ( -- )
    10 0 DO
    [CHAR] I EMIT
    LOOP
;

我预计会打印“0123456789”,但显然-我得到“IIIIIIIII”

有没有办法在

I
执行之前将
[CHAR]
替换为其值?

string loops forth
1个回答
0
投票

[CHAR] X
是一个字符文字,由堆栈上的“X”的代码点 表示。表达式
[CHAR] X
始终在堆栈上产生相同的值。

如果你想在堆栈上打印给定数字“1”,你应该首先获得“1”的代码点。你可以这样做

1
所以你的例子变成:

[char] 0 +

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