0

我正在调试一个不像我希望的那样运行的脚本;

我正在编写一个小型调试实用程序函数,它将打印 'word 后跟它的值。我写了这个:

debug: func [x] [print rejoin ['x " => " x] wait 0.5 ]

而且,在我的代码中,我想简单地这样称呼它:

phrase: "beer is good"
mots: parse phrase " "
debug phrase
    foreach mot mots [
    debug mot
    ;do something...
    ]

我梦想它会在控制台上输出如下内容:

phrase => "beer is good"
mot => "beer"
mot => "is"
mot => "good"

但是我找不到方法来检索变量的原始名称,即它的名称超出了函数的范围。

4

2 回答 2

2

如果您查看您的 'debug 函数并将其与 '?? 的源代码进行比较,您会看到您需要做哪些不同的事情:

??: func [
    {Prints a variable name followed by its molded value. (for debugging)}
    'name
][
    print either word? :name [head insert tail form name reduce [": " mold name: get name]] [mold :name]
    :name
]
于 2013-07-25T18:00:29.403 回答
0

我搜索的还不够多……

?? variable

做我需要的。

>> ? ??
USAGE:
    ?? 'name 

DESCRIPTION:
     Prints a variable name followed by its molded value. (for debugging)
     ?? is a function value.

ARGUMENTS:
     name -- (Type: any)
于 2013-07-25T17:58:02.393 回答